Street coder 1.4.1 -1.4.2

原文:https://livebook.manning.com/...
译:祝坤荣

e52287c8a0589a8cb6f765d25f0789b5.jpeg
Cátia Matos图片: https://www.pexels.com/zh-cn/...

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/23...

交流Email: zhukunrong@yeah.net


麦芽面包
杭州程序员乱弹,聊技术,看世界。兴趣方向互联网分布式系统稳定性建设,容量规划,压测,监控,容灾多...

科幻影迷,书虫,硬核玩家,译者

1k 声望
1.5k 粉丝
0 条评论
推荐阅读
Spring事务传播行为详解
Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可...

JerryTse243阅读 122.8k评论 97

Java12的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft63阅读 11.9k

Java8的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft32阅读 24.6k评论 1

一文搞懂秒杀系统,欢迎参与开源,提交PR,提高竞争力。早日上岸,升职加薪。
前言秒杀和高并发是面试的高频考点,也是我们做电商项目必知必会的场景。欢迎大家参与我们的开源项目,提交PR,提高竞争力。早日上岸,升职加薪。知识点详解秒杀系统架构图秒杀流程图秒杀系统设计这篇文章一万多...

王中阳Go33阅读 2.5k评论 1

封面图
Java11的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft28阅读 15.4k评论 3

Java5的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft13阅读 20.4k

Java9的新特性
Java语言特性系列Java5的新特性Java6的新特性Java7的新特性Java8的新特性Java9的新特性Java10的新特性Java11的新特性Java12的新特性Java13的新特性Java14的新特性Java15的新特性Java16的新特性Java17的新特性Java...

codecraft20阅读 14.5k

科幻影迷,书虫,硬核玩家,译者

1k 声望
1.5k 粉丝
宣传栏