ourjs

如何开发不可维护的软件?
by ourjs keys 心得体会 1382970497000

我从别人遗留的的技术性债务中获得报酬。在我的日常工作中,我见到了很多难以维护的代码,并且我一次次地看到了很多相似的并可以避免的问题。

我专门从事调试、修改、维护、扩展遗留软件系统这类工作,我的典型客户一般都有一个或多或少可以运行的网站或者软件,但是其开发者都因为各种原因不 再维护了,因为商业需求改变导致软件无法跟上需求;或者我的客户有一些“几乎快要完成”的软件,但是因为预算用光或者计划有变与开发者分道扬镳。通常这种 软件会缺少一系列的功能并有一坨bug。

我那些客户通常被其他程序员告知,需要废弃已有的所有代码从头开始。大部分程序员不喜欢维护代码,尤其不喜欢维护别人开发的代码。当程序员写代码 时,当他们谈论到可维护性时,程序员经常会问一些错误的问题——想了解这种情况是如何发生的,请参看Matt Duvall的文章《可维护性的神话 | The myth of maintainability》。

以下是一些你可以在你自己的软件工程中做的“好”事,因为这些事可以帮我找到活干。

盖茨和乔布斯
by ourjs keys 大话编程 1382930897000

    《福布期:电脑革命史》一书对盖茨相当肯定,认为他做事理性,深入,切合实际,对下属公平,就事论事。对微软公司,他精打细算,从未失去控制。

    相对而下,该书认为乔布斯是一个伟大的营销家,偏执狂,但恶习极多:年少成功后把自己当成皇帝,行为无法猜测,不理性,从一个极端跳向另一个极端,喜欢对 人大吵大闹,人身攻击,对人对事态度不公平,从不提供正面意见,永远只是在挑刺。他对Lisa与Mac小组的额外偏护引发了苹果各团队间的恶意,是苹果一 切内讧的源头。苹果内部几乎没人信服他,他也控制不了苹果公司。

    此外乔还是一个商业上的背信弃义者,最初沃兹帮他搞的游戏机项目为他挣得了5000元奖金,但他告诉活兹说只有700元,两人平分,给了沃兹350块,这 小事众人皆知。他离开苹果时把股票变现,拿了2亿美元。之后的NexT叫好不叫座,他本来要血本无归了,但他又利用回苹果做CEO的机会,用苹果的现金买 下了自己的NexT,又兑现了4亿美金。

一位程序员从业余项目被收购中所学到的
by ourjs keys 创业辛勤 1382842006000

我在2012年5月开始的Asterank这个项目。那周的早些时候,Planetary Resources(行星资源公司)宣布他们计划从小行星开采水和有价值的原料。和其他人一样,我被激起了好奇心。这是一个鼓舞人心、难以实现的长期愿景。

我的项目作为一个想法的实验而开始:有多少小行星是真正值得的探索?媒体发布的消息是粗略估计且没有科学根据的。没有人对小行星的含量和价值进行有条理的编录。所以在一个无所事事的周末下午,我在山景城商业区的一间咖啡厅写了第一个版本。

理解JavaScript中的Event Loop
by ourjs keys JS学习 1382748473000

Event Loop

Event Loop 是一个很重要的概念,指的是计算机系统的一种运行机制。

JavaScript语言就采用这种机制,来解决单线程运行带来的一些问题。

程序员必看的十大电影
by ourjs keys 轻松一刻 1382664253000

programmer-movie

不同的行业领域中很多时候都分享着共同的思想和理念。比如,大量的计算机编程中涉及到的概念都被运用到了电影里。有些概念出现在电影里后变得如此之 酷,甚至反过来能帮助我们程序员更好的理解这些概念。下面就是我最喜欢的10大电影,它们都在某方便帮助了我理解编程中的某些概念。

通过javascript把图片转化为字符画
by ourjs keys JS学习 1382577258000

javascript turn image to chars

作者利用HTML5技术 通过javascript把图片转化为字符画, 很有意思的一个技术, 流程如下:

1.获取上传图片对象数据
2.获取图像对象像素点
3.根据rgb值计算灰度
4.根据灰度生成相应字符

 

为什么开发者不喜欢市场人员的 8 个理由
by ourjs keys 挨踢职场 1382665645000
你曾经对开发人员与市场人员之间的敌对状态感到过困惑吗?我们困惑过!所以我们决定问一问到底是什么让市场人员把开发人员弄得这么生气。
 
就本质来说,开发人员和市场人员是内在不同的。在产品的开发与其市场策略之间总是有所隔阂,特别是在软件领域更是如此。
我们给开发人员机会去发泄他们对那些麻烦的市场骄儿的不满。令人期待的是,一种相互的理解能有效增长……并由此避免相互争斗。
 
1.干扰中断
没有人喜欢被打断!当我们忙于某个事情的进展,广告和emails带来的影响与市场人员所期望的正好相反。所有这些噪音只会使开发人员生气。
为何程序员完成最后20%的工作需要的时间跟之前的80%一样多?
by ourjs keys 心得体会 1382576834000

听过行百里者半九十吧。这句话在程序员的工作中同样适用,到底是为何呢?Matija用一个精巧的比喻揭示了个中道理。

其实这就好比在高峰期从郊外开车回市中心。前 80% 的路程很顺,高速嘛,可能两小时就走完了,但是到了城里,就走不动了,红绿灯,人行道,各种环线和菜鸟司机,可能两个小时还不够用的。

编程也是如此。最开始你要设计框架,给整个项目打基础,然后开始开发,几周或者几月之后,你完成了整个项目 80% 的工作,各种关键模块开始起作用了。

但是好戏才刚刚开始,当你准备好好打磨这款产品时,就会发现许多奇怪的 bug 冒出来了。比如:“喂,你知道这个程序在读取文件时拔掉 USB 线会崩溃么?”,“看起来是程序不想下载文件名里有感叹号的文件...”

做个犀利的码农:如何持续培养/更新自己的开发技能
by ourjs keys 心得体会 1382492869000

Study IT book

当你的开发技能到了一定水准,你会偶尔遇到拦路虎:一些短时间内搞不定或理不清头绪的问题。

这是个好事,真的!如果你从不尝试新东西,那当然会发现已有东西对你来说都毫无挑战,这也意味着你没有真的在“求学”。最好的/有价值的学习经历正 是那些拼命搞定某一问题的时光。你极尽所能尝试各种方法并最终找到了解决方案,这就好像你在黑暗中探索,努力拼接出一条成功之路,这种能力在日后也会陪伴 着你。

人在北京,30 岁了,实在买不起房,对生活感到悲观,怎么办?附某励志回复。
by ourjs keys 挨踢职场 1382485360000

觉得自己也差不多,但是家里拿不出首付来,只能靠我一点一点攒,工作6年攒了10W,但是也就够在北京6环付个小房子首付的。老婆是没有的,工作还可以,现在1年20W左右。房价越来越高,我越来越买不起,有种绝望的感觉……

有朋友说去老家工作,但是我很喜欢我的工作(程序员),老家的程序员的工作几乎没有,有了也是非常低级的工作,现在在老家倒是有一套房子

我声明一下,我今年才20W的,以前的工资不高不高不高阿同学们……
还有就算我现在攒钱,以目前房价增长的速度,怎么攒钱我也买不起阿同学……
家里已经催了好几次让我回去了,主要是在北京没有房子,没有女人。在家里有房子,女人就没问题……


 近期热门 - 点击最多
  1. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  2. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  3. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  4. Springboot+Gradle+Mysql+Jpa最简单实例教程
  5. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  6. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  7. node.js用activex/com+自动化读写excel时查询接口、参数的调试方法
  8. TypeScript定义数字范围类型即仅包含【小时:分钟】的时间类型,每天指定时间点执行任务
  9. 比较测试:用百度文心一言和阿里通义千问写删除文件目录并且是async/await代码
  10. node.js使用TensorFlow入门教程二:什么是张量神经网络运算与矩阵的关系及基本入门代码

  全端社区 - 最新回复
  1. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件
  2. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  3. ReactNative获取Android/iOS的MAC/IP地址: react-native-device-info模块的安装与使用
  4. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  5. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法
  6. Springboot+Gradle+Mysql+Jpa最简单实例教程
  7. SpringBoot+Spring6入门指南: 使用命令行快速搭建restful web api模板
  8. Paddle/abbyy等ocr比较:如何将图片生成可选择文字版PDF
  9. 如何通过 winax 的 ActiveXObject 或 Excel.Application 往 excel 中插入一张图片
  10. 如何用JavaScript获取某个元素copy selector的CSS选择器

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA