值得思考的一句话且牢记于心
平台>行业>个人
 

(1)优秀的软件工程师不仅编写代码,还会考虑谁将使用它、为什么使用它、如何使用它。牢记用户需求才能创造良好的用户体验。

(2)水平再高的程序员,也会在自己擅长的领域犯错,如果遇到复杂的问题,就更是如此了。始终牢记,最好的代码是没有代码,或者不需要维护的代码。

(3)任何软件工程师的主要工作都是交付价值。软件只是达到目的的手段。

(4)警惕那些很长时间没有编写任何代码、却在设计系统的人。

(5)Bjarne Stroustrup 有一句名言:“只有两种计算机语言:人们抱怨的语言和没人使用的语言”。大型系统也是如此,每个系统最终都很糟糕。

因此,不要太在意代码的优雅和完美,而要持续改进,创建一个可用的系统,让开发者喜欢在其中工作并可以提供价值。

(6)10倍程序员是一个愚蠢的神话。我只见过程序员将代码规模增加了10倍,最终结果是你必须修复10倍的bug。

真正要做的不是找到神话中的10倍程序员,而是要避免出现0.1倍程序员。那些浪费时间、不寻求反馈、不测试代码、不考虑边缘情况等的程序员,必须保证让这样的人远离我们的团队。

(7)人们说他们想要创新,但实际上,他们想要通常的只是某种新颖性和业务成功。如果你的创新改变了人们做事的方式,大多数情况下会得到负面反馈。如果你相信你正在做的事情,并知道它真的会改善事情,那么就准备好迎接一场持久战吧。

(8)数据是系统中最重要的部分。数据可能会比你的代码寿命更长,保持数据的有序和清洁,避免脏数据,从长远来看,会得到很好的回报。

(9)一直存在的旧技术不是恐龙,而是鲨鱼。它们很好地解决了问题,所以一直活到了现在,没有被快速变化的技术浪潮淘汰。

不要轻易押注新技术,只有在充分理由的情况下才替换正在发挥作用的旧技术。那些老式的技术工具不花哨,也不令人兴奋,但它们可以完成工作,不会给你带来很多个不眠之夜。

(10)很多软件工程师除非被问到,否则不会发表意见。不要因为有人没当面发表意见,而认为他们没什么要补充的。有时,会议上嗓门最高的人是我最不想听的人。

(11)如果将人们与他们的工作成果分开,他们就会不太关心他们的工作。软件工程师和所有人一样,需要有主人翁的感觉,从头到尾拥有整个流程,直接负责交付价值。

让一群充满激情的人完全拥有设计、构建和交付软件的所有权,令人惊奇的事情就会发生。

(12)面试最好用于了解某人是谁,以及他们对特定专业领域的兴趣程度,对于试图弄清楚他们是否将成为一个优秀的团队成员,那是徒劳的。

(13)始终努力构建一个更小的系统。

有很多原因会推动你,去构建一个比原先设想的更大的系统,人类似乎有一种提供更多功能的欲望。你应该抵制这种欲望,在满足设计目标的前提下,始终努力构建一个更小的系统,这样你最终会得到一个比最初设计更好的系统。

 

在大厂内部任职,更像是被需要的特定技术工种,而不是商人。 很多互联网人会认为,企业有技术驱动、数据驱动、产品驱动不同类型。 我不太认同这种分类,我觉得本质上一家企业能生存下来,一定是需求驱动——它满足了某种新的市场需求,或者它为存在的需求提供了更好的解决方案。 技术本身是没有商业价值的,除非你能用技术去满足需求。学习,知识、信息并没有价值,卖才有价值。
 
1、测试充分,数据量大,主要是基础数据。覆盖面广。对于有小数点要求的。
1、项目快上线时,没有考虑到有些页面查询速度过于慢,使得现场业务人员不愿使用系统。导致系统上线时间推迟
2、对于系统的测试方面,全程都需要自己测试,并且保证数据的真实性。每做一笔业务都要先去库存核对数量,对于一个CS开发来说,我只负责我的质量开发,这个测试问题我就不参与,但是我深知我是XX的人,如果所有问题在上线没有发现,到后期上线才发现问题,最后的问题责任都是属于我的。这就搞得我的压力很大。
 
缓存就是典型的例子,将数据额外存储一份儿,下次直接重用,以空间换时间。
 
文件处理时,切分数据分批次处理,花更多的时间,用更少的空间完成处理。
将大文件切片上传