Street coder 1.4.1 -1.4.2

原文:https://livebook.manning.com/book/street-coder/chapter-1/19 

译:祝坤荣

e58854b772d5d3f96deac757efdc01ca.jpegCátia Matos图片: https://www.pexels.com/zh-cn/photo/1072179/

1.4.1 太多的技术

我们持续对于最佳技术的追求源自银弹的谬论。我们认为有一种技术能成倍提升我们的生产力。其实并没有。比如,Python是一种解释语言。你不需要编译Python代码-它可以立即运行。更好的是,你不用指定变量的类型,能让你更快,所以Python一定是个比C#更好的技术,对吗?未必。

由于你没有花时间声明你代码的类型并编译它,你错过了刚写的错误。这意味着你只能在测试或生产环境才能发现它们,这比简单编译源码成本高多了。大多数技术都是提高生产力的一种权衡。提高生产力的是你对技术和技巧的熟练程度,而不是你正在用什么技术。是的,是有更好的技术,但它们不会产生数量级的差距。

在1999年时当我想要开发我的第一个交互式网站时,我完全不知道如何写一个网络应用。如果我开始试着搜索最好的技术,那我会要自学VBScript或Perl。相反,我用了我最熟悉的Pascal。这是为这个目的最不适合的语言,但它能工作。当然,会有很多问题。当程序挂了,进程仍然会在加拿大某台随机服务器上的内存中存活着,用户每次都要打给服务提供商并让他们重启物理服务器。尽管如此,由于我很熟悉,Pascal能让我快速开发一个原型。不需要经过个把月的开发和学习,我可以只花三个小时写完并发布代码。

希望你也能通过自己的方式使用适合自己的工具。

1.4.2

我记得最早的编程范式就是1980年的结构型编程语言。结构化编程语言基本上是按像函数和循环这种结构块来写而不是按行号,GOTO语句, 血,糖和眼泪。它让你读和维护代码都很简单,不需要牺牲性能。结构化编程激发了我对像Pascal和C这样语言的兴趣。

在我学习结构化变成至少5年后,我遇到下一个范式:面向对象编程,或OOP。我记得在那时,电脑类杂志并不多。这是一个能让我们写比以前结构化编程更好的代码的大事。

在OOP后,我想我可能会在每五年遇到一个新的范式。实际上它们出现的更快。1990年出现了使用托管型JIT编译的Java语言,JavaScript网页脚本, 20世纪90年代,随着Java的出现,我们接触到了经过编译的托管编程语言,以及在90年代末突然变得主流的函数式编程。

到了2000。下个十年,我们看到了更多使用分层的应用。富客户端。瘦客户端。泛型。MVC,MVVM,MVP。异步式编程开始引入promises,futures,最后,响应式编程。微服务。类似LINQ这种更多的函数式编程概念,模式匹配和不可变让它进入了主流编程语言。这是一场流行语的龙卷风。

我还没有列举设计模式或最佳实践。我们有关于几乎所有主题数不尽的最佳实践,小技巧。有许多宣言写了为什么我们要用tab或者空格来缩进源代码,关于这个很明显最后的答案是空格。

我们假设通过一个范式,一个模式,一个框架,或一个工具库来解决我们的问题。考虑到我们面对问题的复杂性,这是不现实的。而盲目的使用这些工具会在未来制造更多问题:它们可能会引入新的需要学习的领域知识和特定的一些bug。它们甚至可能让你改变设计。这本书会让你在代码审查时让你正在正确的使用模式更自信。


本文来自祝坤荣(时序)的微信公众号「麦芽面包」,公众号id「darkjune_think」

开发者/科幻爱好者/硬核主机玩家/业余翻译 转载请注明。

微博:祝坤荣 B站: https://space.bilibili.com/23185593/

交流Email: zhukunrong@yeah.net[1]

References

[1] zhukunrong@yeah.net: mailto:zhukunrong@yeah.net

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值