程序员工具箱

作者: linc2046 | 来源:发表于2018-05-24 10:04 被阅读82次
    程序员工具箱

    程序员工具箱

    作为开发者,我们总会和许多不同技术打交道, 有一些全新和陌生的,还有些别人告诉我们一定要学习的即将成为大热门的技术。我已经听这些人说了好多年了,我发现有些应该在你的工具箱里边的合适的技术类型抽象的一些模式。
    所有这里就是...

    我不仅仅指软件, 但你会懂得。首先,我相信全栈开发思想。我真的相信任何开发者应该能够做任何任务。并是不所专家或者全职从事某些技术的开发者没有发展,但我相信最好的开发者是
    那些能够混合使用其他技术,给自己第一语言带来新模式,有着敏锐的学习技巧,并且保持开放的心态。照这样说,我其实相信开发者应该知道许多东西,以下是我在开发生涯中学到的。那么有哪些是每一个优秀开发者最简工具箱应该有的呢?

    Web框架

    Web框架可以Ruby on Rails, Node.js, PHP, Phoenix, Perfect等等。选哪一个并不重要。关键是web框架应该干啥, web框架从一个指定的HTTP请求中创建、读取、更新和删除(CRUD)数据库数据同时提供合适的响应。web框架也可以启动后台任务或者向队列或流中写入待处理数据。

    任务运行器或调度器

    如上所说,任务运行器用于需要在未来某个时间点执行任务或者排队执行。可以是Cron、sidekiq、Verk甚至是windows任务调度程序。这里的想法是要知道某些任务需要相对某个时间点或者某个请求运行,但是可以延后执行。比如: 处理文件上传; 响应是'我们收到文件,谢谢!' 但是后台任务可能是在进行文件处理,也许处理完后发送邮件。

    队列软件

    队列软件可以是RabbitMQ或Amazon SQS或Azure队列存储或消息总线。这里想法是一些后台运行的的软件称为'生产者',他们把数据放在队列中供'消费者'进行消费。你可以根据服务器的负载开始或者暂停多个消费者。

    流软件

    和队列相似,是进入队列中的数据由消费者删除的位置,流处理软件可以让大量数据像河流一样流转同时大量消费者可以从中进行处理。流处理可以是Kafka, Amazon Kinesis等等。队列和流不同但同样重要,但本文现在不进一步讨论。

    前端框架

    前端框架可以是EmberJS、Angularjs、React+Redux、Vue.js,甚至是jQuery!。学习前端框架就行学一些有趣的技术,像浏览器兼容、语言转译或者编译,web调试和观察,响应式设计、数据序列化和反序列化、UI和自动化测试。

    移动APP框架

    尽管移动APP框架不是必要的, 我想最少学会一种移动平台是有用处的, 比如: IOS、安卓或者windows 10。移动框架可以包括Cordova、RN甚至是Unity。移动编程中可以学到很多关于技术限制编码和权衡许多用户体验相关比如小屏幕、电池寿命和隐私。还有IDE支持提供了流畅的开发环境。

    脚本语言

    总有些场景需要快速恶心的编程。也许是AppleScript、Bash、Powershell、Python或Ruby。只要是可以自动化执行任务或者使用Cron及类似的工具定时执行。每个优秀的开发工程师应该知道何时何地快速写点代码,同时知道如何编写脚本也很酷。

    关系型数据库

    关系型数据库可以是MySQL、PostgreSQL、MS SQL Server或其他类似的数据库。这里主要学习的是关系型数据库的工作原理和存储及搜索机制。如果你知道存储过程相比代码过程的好处和如何优化存储和检索时间将会大有益处。

    非关系型数据库

    非关系型数据库有很多很多种,每个都优化以完成某项任务,如: ElasticSearch用来搜索、Druid用来存储时间序列数据。非关系型数据库也包括一般通用功能,如:MongoDB或DynamoDB。你应该尝试理解非关系数据数据库和关系型数据库的差异。
    这些就是你的工具箱。有了这些工具你可以创建任何你想实现的东西,或者效力任何软件公司。当然,你不用在一个星期内学会这些,将会需要几年时间。你也不必要着迷于所有的工具。你可以选择几项作为你的职业生涯。也许我遗忘了一些其他的值得提名的技术, 你可以悄悄的告诉我!祝你好运:)

    译者注

    • 原文链接

    • 因译者水平有限,如有错误,欢迎指正交流

    相关文章

      网友评论

      本文标题:程序员工具箱

      本文链接:https://www.haomeiwen.com/subject/svqdjftx.html