两周过去了,但是没啥新奇玩意好写的。这是一个挺成问题的事情。
本月回顾
在过去的一个月内,我们一起探索了 Docker, Kubernetes 和 Jenkins. 我们构建了基于 gRPC 的 NodeJS 应用程序。实际上我们已经非常熟练以至于接下来我想专门写一个 create-brewy-app
的包来自动搭脚手架。
函数式的 JavaScript
发现了一个非常有趣的网站。最有趣的是,这些函数式教程大多都是用 JavaScript 作为范例语言的。这意味着 JavaScript 也可以很好地搞函数式的玩意,而且还可以有很好的现实世界应用。
当然,我们不搞银弹论。况且实际上,团队工作的最大特点是照顾队伍里走得最慢的,而不是一个人蹿得飞快。但考虑到微服务这种东西本身就已经把耦合拆得很低了,模块内部都是透明的,那理论上疯狂炫技也无妨咯?
牢骚
其他实习同志都有明确的目标,但就我一个憨批好像每天很闲的样子。尤其是现在,之前要求的内容我算是一个不落提前完成了。我倒是也能理解,毕竟导师是团队内主程,所以任务繁重,抽不出时间和我吹水。但看着隔壁桌的客户端实习偶尔导师能过来指点一下我心里就很不是滋味。
虽然说年轻人要坐得住冷板凳,但是这又不是国企,私企哪有养闲人的道理?摸鱼这种事情,只有忙里偷闲才有感觉,真正没事干的话反而让人觉得非常不安。
令人更加不安的是,直到现在我仍然没能接触到关于生产中的任何内容。当然,你也可以说你就一青瓜蛋子上生产不炸都见鬼了,但我并不是指去操作生产环境(那部分由运维管理),我是指接触实际的生产过程。别的不说,代码规范总得有一份吧?哪怕是新平台,哪怕是微服务,那也总会有点不成文的规定吧?命名风格之类的总得有个统一吧?然而并没有。我惊了。
既然用了 NodeJS, 那公司有没有自己的 registry? 我们如何测试自己的代码?单元测试我可以做,集成测试需要在本地跑么?公司有没有可以用于测试的环境?在开发过程中,数据库连接从哪获取?是否使用连接池?用哪个库?或者有一个数据库操作服务?用什么协议?
我之前提交的代码,到底如何?能不能用?我自己的本地单元测试能过,可以集成么?这个库能否应用到现有的应用上?如果不适用于生产,是因为什么原因不适用?性能?并发处理?和现有框架不兼容?其他问题?
我们究竟要面临多大的并发量?我们是否容忍无头客户端?我们是否需要榨干 V8 虚拟机的每一点性能?
这些实际生产中的问题,我全都没有答案。这些东西全部都是从会议的只言片语和偶尔的导师联系中推断的。我只知道两件事情:测试环境比生产环境的配置要低,以及 Redis 实例量不够。
我能理解公司的保密需求。我估计是之前有实习生捅了大篓子所以现在每个人都挺忌讳透露太多信息。或许这个玩法就是野蛮生长,那我就接着野蛮生长呗,搞自己的一套标准出来,当永远的全栈工程师——我甚至连前端工程都开了一个了。
搬砖、划板与著文
服务端嘛,开头新鲜劲一过,剩下的就是搬砖。现在真的是代码敲到手疼,打字速度跟不上思考的速度——后者已然是 wire speed.
中间是有 8 天的假期的。所以我回到学校,把课设的板子打好、焊好,之后就是写代码和写论文了。希望时间来得及。
画板子的时候我就在想,或许互联网并不是我的唯一出路。我最终是继承了我的父亲的一点倔强:去学习更多的东西、掌握更多的技能。但总觉得学得越多,明白的东西越少。学习的成果只有一个:明白自己的无知。
大学里学到的知识,不希望自己忘记,却又已经发现自己把复变函数丢干净了。所以有些内容还是得常看。想要记住一个东西,最好的方法是把它传授给别人,所以[[经验:学习编程]]的目录就在飞速地膨胀。我有些担心自己能不能把它真的写完,给自己的大学一个交代。
Your comments will be submitted to a human moderator and will only be shown publicly after approval. The moderator reserves the full right to not approve any comment without reason. Please be civil.