对程序员来说,经验很重要,如果在你瓶颈期的时候,有人在经验方面能给你指点一二,你是不是就会少走很多弯路?
经验分享
▌客户在接触产品后,才会真正明白自己的需求
只有当我们给客户展示产品的时候,他们才会意识到哪些是必须的。给出一个功能性原型设计远远比一张长长的文字表格要好。
▌只要有充足的时间,所有安全防御系统都将失败
安全防御现如今是全世界都在关注的大课题、大挑战。我们必须时时刻刻积极完善它,因为黑客只要有一次成功,就可以彻底打败你。
❖ ❖ ❖ ❖ ❖
▌安全防御是否失败取决于及早规划
假设有黑客会彻底破坏你的防御系统,那你就得提前做好准备。这样即便真的让他们侵入了系统,也盗取不了任何有价值的东西,因为你已经对服务器做了安全设置,比如对数据库中的内容进行了加密,并且对每台有可能遭受攻击的服务器进行了隔离。
记住,再强大的防御都会有它的薄弱之处,关键是要有备无患。
▌不及格的安全防御是浪费资源
经常会有人抱怨说安全防御是多么多么的复杂和昂贵,他们没有意识到的是,如果防御失败,公司将损失的可能不止几十亿美元。为了节约几块钱而导致企业破产,这种做法毋庸置疑是非常愚蠢的。
❖ ❖ ❖ ❖ ❖
▌不要把复杂的代码,捣鼓成更加复杂的
这一条适用于编程、设计和几乎所有的创造领域中。如果你的代码过于复杂和晦涩,那么它正常工作的可能性会很低,有些程序员费劲千辛万苦,反而让代码更加难以捉摸了。
▌失败是因为容忍错误的横行
有很多程序员总是在辩解,说什么“程序这么难,犯错误很正常了,软件变得糟糕也在所难免了”。这种理由听得多了,于是,大家也逐渐接受了这些扯淡的借口。但是作为程序员真的不应该让这些借口阻碍我们的进步,应该谨记,错误只能犯一次,要吸取教训。话说是程序员都会希望自己下一次就能一次性搞定代码。但是没有人是完美的,不过至少我们是在朝着这个方向前进。
▌唯一不变的是变化本身
计划永远赶不上变化,以为明天的世界和今天一样,这种想法本身就是愚不可及的。尤其是在编程世界里,没什么是永恒的。
❖ ❖ ❖ ❖ ❖
▌永远不要停止学习
一旦你停下来学习,技术的浪头就会狠狠将你拍死在沙滩上。作为程序员立于不败之地唯一方法就是,不断学习、不断进步。因为一旦你松懈下来,你的所有优势都将随风而逝。
▌整个软件行业建立在“百家争鸣”的思想上
很多程序员会对各种事情较真,预估完成时间,规模大小等,有的人还屡错屡战。有些以前被批判为“行不通”的技术,现在却已经牢牢占据了人们生活的一席之地,并且现今正向着另一个高峰冲刺。
▌适合你的不一定适合他
在软件项目中我们可做的选择很多很多,有的英明,有的糟糕。但是适合你的,可能一点都不适用于其他人。我们经常能听到别人说自己又在干什么伟大的创举,但是如果他们说什么这是唯一的好方法时,你会对此嗤之以鼻。
❖ ❖ ❖ ❖ ❖
▌评估是最为重要的技能
如果你愿意认识新事物,看得到他人的努力,比较做事方法之后再择优使用,那么不但是你自己,还有你的团队、你的项目,都将受益无穷。
照着别人说得做,看别人做什么自己也做什么,是非常容易的。但是如果要全方位地看问题然后再基于自己的需要选择对应的最优方向,这就很难很难了。在工作中做抉择是必须的,如果这个时候头脑一片茫然,那最终的结果只能是随机挑一个或者是盲从随大流。
▌不管黑猫白猫,能抓到老鼠就是好猫
只要你能实现客户指定的功能,他们才不会关心需要解决哪些问题。系统出问题了,异常情况发生了,硬件坏了,用户永远不会对这些发生兴趣。如果发生意外情况,最好能坦诚说出来,但是你最好要能确保这种情况不会持久,因为最终的产品将交给客户。
▌客户的意见决定质量
无论你设置了多少指标,检查过多少表单,审核了多少代码,写了多少测试,这都不是关键,除非客户自己亲眼目睹软件运作正常。关于代码质量、性能、设计和可用性,客户的意见才是决定质量的唯一要素。
❖ ❖ ❖ ❖ ❖ ❖
▌对某方面的无知可能会让你一败涂地
有的人没有收集足够的日志、崩溃报告和使用信息来掌控自己的软件。那些对这方面信息不屑一顾的家伙,大多会高估产品的质量。因为如果你不采取措施和记录结果,浑浑噩噩地混日子,终将会导致你对当前情况一无所知,包括你的客户。详细而有用的日志记录、程序崩溃跟踪、评论和意见,能让你尽快了解发生的问题的。不过,也会有人认为“这种事和程序员有一毛钱的关系吗?”。
▌总有更好的办法,但是时间不允许
评估中最难把握的节点是什么时候应该停止头脑风暴开始开工,或许我们会错过那个更好的方法,但是如果要耗费很长时间,那就不值得了。但是这是很难界定的,不过有时候今天的一个小小的选择可能会打败明年那个更佳的选项。
免费领 | java、python、前端、PHP……所有程序员看过来!
领资源做全栈程序员!