Fork me on GitHub

code-is-temporary 代码是过眼云烟

code-is-temporary 代码是过眼云烟

注:这篇博客是读了我喜爱的软件FeedDemon的作者的文章https://nickbradbury.com/2015/02/25/code-is-temporary/ 之后的翻译摘要和个人感受。

一切都将过时

开发人员年复一年,日复一日的开会,加班,写代码,调试代码,最终我们的项目有retired的时候,项目代码也将会被废弃。 我们热衷的流行开发框架也很快会被新的框架所替代,曾今你写的代码或许将来只能在一些怀旧的老的模拟环境里能执行。 个人感受: 关于上面一段有些切身体会,比如现在在HP的一个项目GSDA,我们花了2-3年的时候,最后项目经过几个release 之后,因为用户量少,项目 被砍,部署上线的一切也被销毁,留下给我们的只有曾今的记忆。 曾今在大学里学习C++, 用的是visual studio 6.0 好像,还把曾今写过的代码备份至今,但是现在这些代码在visual studio 2015里是很难跑起来的,而曾今的 MFC框架厚厚的一本书,不知道现在还有几个人再用?

如何应对

代码其实不重要,重要的是代码背后的思想和意图。有意义的拙劣点的代码要胜过完美的毫无意义的代码。

不要浪费时间迷失在掌握和研究流行工具的细节功能上,花点时间创造真正对你重要的一些工具。可能这些会跟你时间更久一点。

其实每个人有超乎我们想象的能力,只是我们把时间浪费在构建一些对我们不重要的事情上,是时候做些改变了,如果不做永远不会发生。

个人感受:曾今一度研究过各种最近比较流行的文本工具,比如ATOM, notepad++, visual studio code,Sublime Text。每个工具都有他自己的特色,和一些geeky的功能和插件,但是其实80%的功能其实我们不care, 我们花太多的时间研究各种工具的技术点。其实想要解决notepad 本身的缺陷,可能根据我们自己的使用每个人有自己的痛点和需求,我们何不自己去创造呢。依赖这些第三方的工具,或许有一点他将收费,或许有一点他不再开发了,或许他也将不再满足你的需求。
Continue reading →

Take Computer As a Tool

Take Computer As a Tool 把电脑当工具

当我们在用电脑的时候,其实我们不知不觉地在被电脑塑造,捆绑。我们在闲聊,我们在八卦,我们在逛店,我们在看视频,我们在翻网页。

但是我们忘记了电脑只是一个工具,我们应该主动得知道我们要用电脑做什么。

比如说我要找人聊天,我就约好时间,QQ聊个天,然后关机; 比如说我要买个东西,我就淘宝,京东上快速下单,而不必在那签到、评价领取积分或者抢红包; 比如说我们要看某个记录片,安排好时间,安静得好好看完; 比如说我们要查某个东西,学习下搜索技巧,快速地找到需要的信息; 其他的时间,如无必要,不要被电脑这个工具奴役。​

Continue reading →

Using What You Already Have

Sometimes we keep looking for resources everywhere only to realize that we had it with us the whole time. Situation like these might arise when you have too many choices. I too faced these moments before. It is a tough situation indeed.

I think one should develop art of learning before trying to learn a lot of things at once. Once you know how to learn and improve how to learn through constant iterations. It becomes easy thereafter.

I changed quite a lot as a developer and person. Last year. I was all about learning new technologies, getting super aware about all the frameworks that are popular. Now, I don’t even bother checking these. My goals are now mostly on low level decisions or high level architecture. All these frameworks and likes are just tooling. Nothing less nothing more. The main focus should be on problem solving. And problem solving at its heart is always Language/Platform/Frameworks agnostic.

  • There is absolutely no good theme if you are running a technical blog.
  • Syntax highlighting is pathetic.
  • I can’t write post in my text editor.
  • There is no source control.

Reading books and theory is also very important at this stage. Consider it as like sitting on the shoulder of giants. Of course practice is very important as well but making sure there is a good balance between these two really pays off.

I love reading books. I have bought quite some books in the past 11 months. I have so much to read and learn from these gems. I have done good progress in completing some of these. Hoping to cover more in the near future.

Continue reading →

How-To-Blog 如何写博客

  

How-To-Blog 如何写博客

13 Apr 2014

No matter when or why you started your blog, a few tweaks here and there to your blog and your attitude can change things for the better. Check out our list of seven tips to help you succeed as a blogger.

1. 选定主题 Focus on Topics

What readers really want is a collection of related and helpful articles on the same topic to help solve a problem or question.

2. 内容为王 Content is Key

Continue reading →

how-to-choose-third-part-tool

如何选择第三方工具构建系统

俗话说,他山之石,可以攻玉.当我们构建一个软件系统的时候,我们会面对很多选择: 开发工具的选择,源代码管理工具的选择,数据服务器的选择……

前段时间我为公司的Optimum项目做持续集成方面的研究,因为项目本身是基于.NET平台下的,所以我开始选择的是CC.NET,这是一个开源的第三方工具,他可以很好的支持我们这个项目的源代码管理工具StarTeam。构建这个系统开销比较大的地方就是配置,他是纯手工配置XML,需要先了解他的XML规则。整个系统完成持续集成工作大概花费了2天时间。 后来在项目的PMR会议上,我们公开评审了我们这套CC.NET持续集成的流程,程序员们一致表示这将大大方便大家,提高工作效率。有过多年项目经验的PMP提出另外一个java阵营的工具Hudson,据说也是构建持续集成系统的工具。希望我有机会研究对比下,看到底哪个系统更加适合我们这个系统。 会议之后,我在网络上进行了搜索对比, 一些Java阵营的朋友都非常支持Hudson,还有人对Hudson和CC.NET进行了对比。其中有两条非常重要的,就是Hudson支持插件和友好的界面配置。当时我就心花怒放,因为CC.NET在初次配置的时候是个很大的开销。于是我就着手打造我们这个系统的Hudson版的持续集成系统,很快,如你所料,仅仅用了2个小时我们就搭建好了这个系统。我立即全组通告了这个消息。最后我们这个项目决定转用Hudson作为我们的CI工具。

但是,好景不长,很快我们遇到了Hudson下的一些问题:对StarTeam的支持性不够好,遇到问题后,我们去看Husdon的源代码没有直接看.net程序顺手。诸如此类的问题一个接着一个,最后我们不得不重新回到CC.NET下。

通过这件事情,我学会了软件开发中重要的一课。选择工具的时候一定要选择那些适合你特定项目的,可以被信任,可以被维护的工具。引申来说,如果一个工具对你项目至关重要,你一定要选择一个可控的第三方工具。假定你在写个游戏程序,你的卖点是图形处理能力,对你最重要的就是3D库,这是你的卖点,如果你为了节约成本,加快开发进程,实现软件复用而选择第三方的3D库,你也要选择开源的库,否则当程序崩溃的时候,你就无计可施了。因为你不知道问题出在哪里,因为你没有源代码,你不能方便的调试诊断问题的根源。所以,最关键的就是,要使用更原始的工具或者开源库来构建你系统中的核心基础。

Continue reading →

All Tags

mindset

devops

book

ci

communication

jenkins

自媒体

hometown

geek life

cloud

ai