和程序员男朋友过情人节都是这样的
◆ 01 我一直期望着跨年的时候,我们能有机会一起看着烟火倒计时,然后在跨年钟声响起的那一瞬间,拥个抱接个吻什么的。 2013年跨年。舍友们出去开了个房间,看跨年晚会,唱歌,等等。我对某人说,我们也一起跨年吧。 他说,好啊。 然后抱上了电脑,把我带到了实验室。 “你挑个电影,我们一起看好了。” 我在心里叹了口气,挑了个《爱在黎明破晓时》系列。 看了一会儿之后,发现他心不在焉。 “怎么了?” [...]
◆ 01 我一直期望着跨年的时候,我们能有机会一起看着烟火倒计时,然后在跨年钟声响起的那一瞬间,拥个抱接个吻什么的。 2013年跨年。舍友们出去开了个房间,看跨年晚会,唱歌,等等。我对某人说,我们也一起跨年吧。 他说,好啊。 然后抱上了电脑,把我带到了实验室。 “你挑个电影,我们一起看好了。” 我在心里叹了口气,挑了个《爱在黎明破晓时》系列。 看了一会儿之后,发现他心不在焉。 “怎么了?” [...]
要成为当今软件开发中受人尊敬的专业人士,你需要掌握各种技能,而且达到高水平的专业级别。最起码,你需要能够把你的英语解决方案翻译成软件实现。 不仅技术上要正确,在业务上也得可行。因此,对业务有一个深刻的理解总是没有坏处的。这使得你可以有效地收集和谈判客户的需求,并确保软件能够经过时间的 考验。企业希望软件是一个长期的投资,能够在几年甚至几十年之后依然物尽其用。很少有希望软件只存活几个星期的。如果真的有,那可真是一个糟糕的投资。 遗传编程 你可能会觉得自动化的软件开发是一个奇思妙想,甚至觉得这是不可能的。但是遗传编程告诉我们nothing is impossible。软件会产生变异,改变它们的指令,努力顺利发展以变得更适合。在每个突变后,它们将自行评估它们是否正趋向于期望的输出。这里对于 合适的评估是由测试提供的。而且是大量的测试。这些测试都封装了经过时间、空间和功能性制约的业务逻辑。突变越合适,通过的测试越多。这是值得重申的是, 我们不应该关心生成实现的细节。事实上,生成多个符合要求的解决方案是完全合理的。要减少解决方案只需要增加更多限制问题就可以了。 软件开发人员的传统角色将会被淘汰。他们很快会被重新定位到设计、开发和维护测试。即,计算机的程序设计将变得不必要,因为它们自己就能编程。这种 [...]
益处 Nassim Nicholas Taleb 在《Antifragile》中写到:“错误包含丰富的信息”。我完全同意这个观点。Bug 帮助我们更好地理解系统,告诉我们怎样提高编码、测试和调试技巧。所以我认为尽可能从 bug 中学习经验,是再正常不过的事了。 我发现为每个有趣的bug记录下来,让我轻易学习到很多。在记录的行为中我会对发生的事情思考得更深刻。同样,一旦记录下来,我可以在之后检查发生的事情。偶尔,我也会浏览文件,只阅读教训部分,对我认为是从 bug [...]
大约不到20年前,我处在人生十字路口上。我的第二家公司当时已经花了5年时间为出版行业打造专业图表制作软件,不过在那互联网即将大热的年代,出版商们已经逐渐向互联网领域转移,我们的业务渐渐枯竭。那时候我已经是一个有 13 年编程工作经验,而且同时有 9 年公司运营经验的综合性人才了。 今天,我还是一个程序员。所以说现在谁是小角色呢?我怀疑我是不是有一天真的能退休。幸好我还是比较擅长做程序员的(我现在的工作是我以前的一个经理给我的,他有一个需求而且知道我能做这件事情),但是到目前为止,我所能做的也就只能是一个程序员。 我做程序员有大约35年了,其实完成工作的感觉还是很有意思的,而且这么多年我也确实做了不少出色的东西。但是我也感觉到我对当年没有去接受成为一个管理者的挑战产生了悔意。在某种程度上,程序员确实是一个单纯的选择。考虑到我经历了整个互联网(Dotcom)时代,也经经历了乔布斯回归苹果的事件,如果我还能有成为技术领袖的经验,那么我几乎可以无所不能。 所以说,是的,我对我没有把握住(成为管理者)的机会感到后悔,谁知道如果我当时把握住了现在会变成什么样。不过有失也有得,我因此得以享受书写代码的乐趣,以及那些为了解决为题而纠结烧脑的乐趣。 我不想再同时又干技术又干管理了。我的第一家公司(1985-1987年)的主要业务是打造一款电子表格程序,并有自动发布的功能。当时我一人主导了整个公司的多项事务,与媒体打交道的是我,面见投资人的是我,处理日常商务杂事的还是我,与此同时我还是公司的3个程序员之一并且兼任 UI [...]
2013-2014年间,全世界吹起一阵写代码的风潮,各大媒体疯狂报导,鼓吹年轻人不管所学为何,一定要学写程序。时不时就会看到「程序员是最有钱途的工作之一!」或者「连奥巴马都开始写代码,你能不开始吗?」这类的文章,不管金钱诱惑、名人带头,仿佛全世界都在疯狂的做程序。就算到了2015年底,不时仍有这类文章出现。相对之下,许多人认为自己目前工作很糟糕,包括老板高压统治、工作内容乏味、薪水仅能糊口等等,看到文章里头那些「高薪」、「出国工作」、「热门职缺」的字眼,是不是都想转行呢?今天就整理一些建议给大家。 第一件事,你对写代码真的那么热爱吗? 对于热情这件事,不得不再次提到二八法则,因为有80%的热门技术是由20%的人所构架出来。不管你未来所钻研的是哪种技术,总会在领域中有一些神人,他们可以1个人就超越10个的产值,对该技术有非常完整且深奥的了解,并且针对难懂的问题有非常优雅的解法。这些人决定了未来技术的走向,例如目前市面上的大型商业软件,许多都是由少数人将构架完成,后续才是由许多工程师进行维护、更新。 你想成为那些「大神」吗?虽然许多程序员做了一辈子也没办法,但仍然要保有那「想要成为大神」的热情,才能得到担任程序员的快乐。在生活中程序员不只会遇到系统错误,更常会遇到使用者给予的意见,包括常在Google Play或App Store上看到的评论:「这软件超烂」、「一分都嫌太高」等等,没有重点却严重打击士气,也是生活中的一部分。反之,尤其在大型项目上线,陆续收到使用者说回馈说:「使用上变得更方便了,谢谢你们!」这类温馨的评论让人非常有成就感。抑或是在钻研特别技术,而成功让项目有大幅成长的时候,例如用Go语言将部分Ruby on Rails的API服务重写,让整体速度提升20倍以上,这些数据都会让程序员非常有成就感,也是工作上很大的满足。 反之,当我们只想着要每天安安稳稳的写代码、维护项目,以上那些情况就绝对不会发生,我们整天只会自怨自艾,对现况感到不满却不改善,把所有的错都推给使用者、推给主管、推给别人。那不如不要转行了,不妨待在自己目前的位子上,好好过生活即可。一定要充满热情,想要成为「二八法则」中的领导者,跳进程序员这个圈子才有意义。 第二件事,不要被媒体的宣传蒙蔽了双眼 [...]
我认识到一个非常有悖常理的现象,优秀的程序员大都是即懒又傻的。 因为懒,他才会写出各种各样的开发工具来替自己干活。因为懒,他才会想办法避免去写无聊重复的代码——因此避免的代码的冗余,消减了维护的成本,使重构变得容易。最终,这些由于懒惰激发出的动力而开发出的工具和最佳编程实践方法提升了产品的质量。 懒惰的程序员也因此变成了优秀的程序员。当然,这只是事情的一部分;从一个懒惰的程序员变成一个优秀的程序员,他/她会在学习如何能够永远保持懒惰时表现出惊人的不懒惰——也就是,什么样的软件工具能让自己干活更轻松,什么方法能避免繁冗,如何能让工作更容易的维护和重构。 其次,(我将用多一点篇幅来说明这一点,因为我发现这个观点比第一个更难接受。)优秀的程序员都是傻的。为什么?因为如果他很聪明,或他知道自己很聪明,他就会: ◾a)停止学习 ◾b)对自己的工作不再高标准、高要求 第一点将会导致他不再努力的去发现新的技术或者工具(PS:可能他就会不会发现像WeX5这么棒的APP开发工具),让自己工作的更快捷。第二点将导致他的代码变得难以debug,难以重构。在程序员和编译器无休止的战争中,程序员最好一开始就投降并承认是自己的错,而不是编译器的错(除非是关于字符编码问题,有些编译器确实有问题)。 但是,还有一个优秀的程序员必须笨的更重要的理由。为了寻找到更好的问题解决方案,他必须保持一个谦虚的心态,他必须跳出模式想问题。某种程度上,这会让他们回到小孩的思维模式;因从未经历“no”的打击而极具创造力。 相反的思维模式就不是那么具有创见性,会认为对现状了如指掌,会接受现状。可是又有谁知道多少你认为的不可能是真正的不可能?知道的越少你就会越激进。你的开发工具越好(PS:就像H5 APP开发工具——WeX5),你的产品就会因为它们变得质量更高。 [...]
API手册:Studio工具,菜单栏“WeX5文档”——API手册 WeX5文档中心:http://www.wex5.com/doc/ WeX5视频教程:http://www.wex5.com/downloads/ 资源下载:http://www.wex5.com/zh-download-page 开发社区:http://www.wex5.com/bbs/index.html [...]
在 HTML5 出现之前,页面元素的拖放需要监听 mousedown、mouseover 以及 mouseup 等一系列事件,然后改变元素的相对位置来实现这一效果。HTML DnD(Drag-and-Drop)API 的出现,使得拖放变的简单。但是由于 DnD [...]
新增特性: 1、提供超轻量高性能服务框架(XBaaS),支持免代码或少量代码快速开发操作数据表的CRUD服务,目前v3.3版本提供了XBaaS的java和.net语言实现,后续会提供PHP、nodejs、go、python等更多语言实现; 2、配合XBaaS, 提供了BaasData组件,无需代码就可以实现CRUD、分页、主从、树形等数据操作; 3、提供了仿网易新闻案例; 4、提供了仿淘宝案例; 5、统一windowContainer、windowDialog和Shell的传递参数方式; 6、windowContainer支持了路由(设置routable属性为true); 7、优化windowContainer的加载性能,autoLoad为true时,视图部分(html和css)会预嵌入到父中; [...]
新增特性: 1、自带的MySQl升级到5.6版本; 2、门户重构实现,抽取了门户的基础公共逻辑(portal/base),基于portal/base能快速实现新门户,同时提供了一种新的风格门户(PC2),后续还会提供更多风格的门户; 3、提供了仿网易新闻案例; 4、提供了仿淘宝案例; 5、统一windowContainer、windowDialog和Shell的传递参数方式; 6、windowContainer支持了路由(设置routable属性为true); 7、优化windowContainer的加载性能,autoLoad为true时,视图部分(html和css)会预嵌入到父中; 8、attachmentSimple组件新增了属性action,可以支持XBaaS; [...]