获得徽章 0
Option 1 :我可以再按时完成,但是质量别想。

Option 2 :你给我足够的时间,我保质保量全部交付。

Option 3 :我还是按你这个时间,但是你必须砍掉一些需求。

--来自左耳朵
展开
7
又想起当年恶心到我的月饼公司,和后面怎么处理蒋凡形成鲜明对比。
现在想起马云那群人当年处理月饼的时候那些装x上纲上线冠冕堂皇的话特别恶心,不就是拿普通人开刀立牌坊而已罢了。
1
最近由于特定需求,我创建了一个代理项目,该项目可以对进出流量进行加密解密等操作。
虽然该项目在实际应用场景中可能使用不多,但我通过这个项目加深了自己在 Golang 编程方面的能力。
作为初学者,总体来说代码比较浅薄,但希望还是能大家提供一些帮助以及接收一些反馈,持续优化。

项目地址:github.com
项目使用sdk的方式运行项目, 并尽量保持扩展性,可以使用WithOption的方式自定义某些配置。
使用示例:github.com

在项目中,我将我的学习成果应用于实践,并将总结如下:

1. 在 outproxy/internal/pack/pack.go 文件中,使用 Middleware 模式,可以让代码更加优雅。
2. 在 common/logger/logger.go 文件中,使用 logger 抽象技巧,支持后续使用时传入自定义的 logger,例如 logrus、zap、zerolog 和 seelog。默认使用 zap。
3. 在 common/compress/compress.go 文件中,使用数据压缩技术,目前支持 snappy 和 gzip。
4. 在 common/config/config.go 文件中,使用配置抽象技巧,目前内置了 YAML 和 Apollo,当然也可以自定义。
5. 在 common/encrypt/encrypt.go 文件中,使用数据加解密技术,目前支持 AES 算法。
6. 在 common/pool/bytes_pool.go 文件中,使用 sync.Pool 技术,可以复用内存,提高代码性能。
7. 在 common/proto/proxy_payload.proto 文件中,使用 protobuf 协议传输数据,性能和效率都非常高。
8. 在 common/server/server.go 文件中,使用经典的 Option 模式和优雅退出服务的处理,作为服务启动入口。
等等
展开
评论
+ 当把任务分解成小块的时候,这些任务就变得更易于完成,对完成任务所需的时间的估算也更精确,你也更有可能正确地完成它们。即使有些小任务没有正确完成,你也有很多机会改正,而不至过多地影响大项目。我发现,把大任务分解成小任务真是一个好主意。

+ 在管控代码的复杂程度问题上,我们也会做一些工作。这就是我们不会将所有的代码都写入一个方法中的原因。我们会将自己的代码分解为方法、函数、变量、类以及其他结构,从而简化代码。

+ 不管编程问题有多难,它总是可以被分解为更小的单元。如果你想要写出一个难度很大的算法,在一头扎进去写代码之前,先把这个问题分解为能够依次独立解决的小模块会更有帮助。无论应用程序多么庞大、多么复杂,它都可以被分解成一行行的代码。单独一行代码的复杂度绝对不会超过任何一位程序员的理解能力和编码水平,所以,如果你愿意将问题分解得足够小,只凭借写出单行代码的能力你就能写好任何应用程序。

--《软技能_代码之外的生存指南》
展开
评论
+ 定额工作法的规则
挑选一项重复性任务。
明确有效时限,在此期间该任务被重复执行。
明确在给定的有效时限内该任务应该完成的次数的定额。
给自己承诺:一定要达成定额。
调整。调高或者调低定额,但是不能在有效时间段之内调整。
展开
评论
+ 如果我想提前掌握所有知识,那只是在浪费时间,因为真正重要的内容会湮没在那些细枝末节中。

+ 这种新方法能让我关注重点。当我确实需要了解更多细节时,我可以利用参考资料来弥补这些不足。

+ 使用这种方法,我在很短的时间内学会了Go语言——仅仅几个星期而已。

+ 我专注于学习如何尽快用Go语言写代码。很快我就对这门编程语言以及它有哪些可用的库有了一个大致的了解。我希望对这门语言能做什么能有一个整体的了解。最后,我完成并掌握了基础知识。当我需要深入了解时,我只需要在这些基础知识的基础上进行扩展。

-----软件之外生存指南
展开
3
+ 有时候只要意识到自己的工作毫无前途,就需要寻找更好的机会。也许你的工作环境很艰苦,残害身心,也许裙带关系盛行,你只能原地踏步。无论什么原因,你可能都需要换工作了。

-------代码之外生存指南
评论
+ 如果公司的业务重心并非软件,那自然也不会给软件开发人员足够的尊重和发展空间。这些公司的软件开发实践极有可能非常松散。

+ 另一方面,那些以软件开发为生的公司则会更重视自己雇用的软件开发人员的价值。他们的工作环境不一定会更好,但会大不一样。

+ 在推行敏捷软件开发方法的时候,这两类公司之间的差异非常明显。软件为非核心业务的公司在采用敏捷过程中困难重重,这是由于敏捷过程通常是由开发团队驱动的。敏捷过程需要自上而下地采纳推行,但是仅仅因为一些开发人员认为敏捷是个好主意,就让公司改变自己的做事风格,异常困难。

------代码之外生存指南
展开
1
不得不说,chatgpt真的很可以,比直接用搜索引擎高效多了,而且很懂我想要什么。用它辅助写代码,爽多了。
1
先为自己负责,才能更好的为别人负责。而为别人负责,最终还是为了更大程度为自己负责。
1
有时候我们会不禁感叹,他怎么这个东西都懂,他怎么写得这么优雅。前者体现的是技术深度和细节,后者也是品味和天赋。技术细节是基础不能丢,同时术业有专攻,而技术品味也更要多加培养。
评论
学习得越多,就越不会轻易发表了绝对的看法,一般都是以请教的口吻提出质疑。举个例子,你虽然验证过这段代码的某个组件的用法有问题,但是不同版本不同平台可能表现不一样,甚至你没仔细看过这个组件的源码的情况下,还是不要轻易下结论
2
个人想法,有很多工作并不像计算机一样,不是0就是1,对待任务,我很有信心做好,但同时以往的经验告诉我,随着工作进行的深入,会有很多细节需要考虑,可能并不是简单就能完成的事,毕竟内心还是想尽可能接近完美
3
下一页
个人成就
文章被阅读 2,553
掘力值 150
收藏集
2
关注标签
11
加入于