帮助中心 广告联系

灵宝信息网-灵宝天气预报-灵宝教育网-灵宝租房-灵宝新闻网-灵宝生活网

热门关键词:

MacTalk-池建强的随想录(2)

来源:原创/投稿/转载 发布时间:2019-10-03

  上周看到一篇文章,大意是阿里云源代码泄露,涉及多少家企业云云,看起来耸人听闻,点进去发现是有企业在使用阿里云做代码托管的时候,private internal 和 public 傻傻分不清,创建仓库用了 internal,结果只要是******用户都可以看到并 clone 这些代码。事实上,这三个设置不仅是惯例,internel 的注释也写的清清楚楚,但是挡不住程序员不看。你永远不知道一个人的水准会低到什么地步,也许这些人从来没用过 GitHub 和 GitLab 呢?

  阿里云其实可以采用安全最小化原则,也就是常说的多一事不如少一事。最小化可用原则,对于操作系统来说,就是装最小化的包,没用的服务不启动,操作命令最小化,权限最小化等等。对于阿里云上的托管用户来说,internal 应该是个可有可无的功能,去掉是不是更好呢,也许值得平台方思考。

  本周我们上线了一款基础课专栏《软件工程之美》,最新的文章中阐述了软件过程和软件危机:

  首先,它们的诞生都是有人想要造一个东西。这其中的很多故事你都耳熟能详:张小龙创造微信、乔布斯创造 iOS、暴雪想做一款不一样的射击游戏……他们首先有着这样的意图,然后,他们立项做这样的产品。

  每一款软件项目背后,都有很多人在参与。你无法想象微信这样复杂的 App 靠张小龙自己可以开发出来;你也不会相信 iOS 是乔布斯一个人设计出来的;像守望先锋这种游戏的背后,有成百上千的游戏策划、美术设计、程序开发人员。

  从立项到第一个版本的发布,每个成功的软件都需要有计划、有步骤地进行,什么时候发布第一个版本、第一个版本有什么样的功能、什么时候发布第二个版本、第二个版本有哪些地方要改进,这些都是研发过程中需要考虑的问题。

  比如,守望先锋是在 2013 年立项,他们计划做一个基于职业的 MMO 游戏,他们先花了几个月的时间做了第一个 Demo 演示,只有四个英雄和一个张地图。

  然后,他们要在 2014 年的“暴雪嘉年华”发布这个游戏的试玩版,包含 12 个英雄和 4 张地图。

  最终这个游戏在 2016 年 5 月正式发布了。这样从立项一步步到最终发布,历时三年,中间经过了诸多环节。

  类似的例子还有微信,2010 年 11 月 20 日立项,2011 年 1 月 21 日第一版上线,当时的功能还非常简陋,只能发送文本消息和照片。之后才是一个个版本的迭代,直到你现在看到的微信。

  那什么是软件危机呢?有兴趣可以订阅专栏阅读。软件工程是你通向程序之巅的必经之路。

  周末读村上的书,他说自己能够持续写作和跑步,就是因为具备两个特质,一个是集中力,一个是耐力。村上写长篇的时候每天早晨集中写作四小时,他一个人坐在书桌前,没有任何打扰,将意识集中倾斜在书稿中,其他什么都不考虑。另外,没有耐力也不行。你集中写了一星期然后伸伸懒腰说,我累了,然后就休息一个月,这样是写不成长篇的。你必须每天集中写作,坚持半年,一年,甚至更长才行。

  一个优秀的程序员需要什么特质呢?由此我想到之前读过的一篇文章,是 Redis 之父萨尔瓦托·桑菲利普(Salvatore Sanfilippo)写的 9 种高能程序员的特质,重新意译一下,推荐给读者:

  从处理编程子任务上,可以看出一个程序员的短板和长处,比如实现一个函数或者一个算法。事实上,擅于使用基本的编程技能来高效完成任务的程序员,并没有人们想象的那么多。有时候,团队里有些不称职的程序员,他们甚至不知道该怎么写一个简单的排序算法。

  桑菲利普认为,经验就是一系列解决方案,它们已经被证实可以用于处理一些重复性的任务。经验老道的程序员知道该如何处理各种子任务,这样不但省掉了很多设计工作,而且避免了很多设计错误,而设计错误是简洁性最大的敌人。

  花在编码上的时间不仅要看数量,也要看质量。造成注意力不集中的因素既有内部的,也有外部的。集中注意力和避免被打扰,对于提高编程效率来说是至关重要的。

本网转载作品的目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如涉及作品内容、版权等问题,请联系我们进行修改或删除!

联系我们 -