
人类
对于我们大脑这个数据库来时,平时我们存储的是 key-value (ps: 我们只有 key,value 是 Google 和书本),对于专家来说,存储的是 documents。在同样的容量大小的情况下,我们可以了解到更多的知识。如下图所示,左边的关系数据模型即为全栈工程师,右边则为专家。key曾经迷惑了很久: 为什么对于一些知识点,我需要去 Google,而别人可以独立地完成的时候。我就意识到我更适合于互联网企业,据说在一些电信设备制造商里是没网的办公环境。然而在多数的时候,这并非一种劣势。我们会更快地方式来解决问题,因为我们有一些这方面的经验。不足则是,有时候我们没有办法深入问题去分析。如何成为全栈工程师这是一个有趣的问题,在知乎也有这样的讨论。而我觉得,最重要的是好奇与创造。创造记得在上大学之前已经有一个明确的目标,尽可能地做到能做到的程序——想到的都应该能做到。于是,顺着这个目标构建了一个知识体系,又或者说是索引。当我们心里有一个想法的时候,我就开始从一个 key 中进行头脑风暴,如之前做的地图搜索。我们要做的功能便是: 持久化 geo 信息,在地图上显示坐标。1. 首先会在头脑中列出所有我用过的框架,选择后台框架:Django (Python)、flask (Python)、Ruby on rAIls (Ruby)、sinatra (Ruby)、nodeJS、Laravel (php)、Spring (Java)排除过后就只剩下 Django、flask、nodeJS,接着因为 Django 内置 geo 支持,果断选择了 Django。2. 接着,对于持久化方案的选择:由于 Django 内置 orm,所以这一步可以轻轻松松地过去。不过,我选的是 sqlite3,本地调试方便,还可以将数据复制到服务器上。3. 然后,对于空间搜索的支持:就这么有了两个搜索引擎和一个数据库: elasticsearch、solr 以及 MongoDB。因为 Django 对于 MongoDB 支持的原因,想到使用搜索引擎会更容易搜索到结果。接着找到了 haystack,看到 solr 需要手动更新索引就选择了 elastisearch。4. 到了,移动开发:要跨平台支持自然是 cordova,用 hybird 还是 ionic 好用。5. 实战这一步自然也不是问题,向来是以实战出真知的。在不断创造地过程中会学到更多的知识,有更多的方案可以选择。下一次,将会想着用不同的技术栈再实现一遍。有了之前的体系,再横向深入也是一个很好的突破点。如,我们用 Python 构建一个原型,然后我们用 Java 来实现。好奇与专家不同的是,全栈工程师更容易被新的技术吸引。至于,是好是坏我想大家都懂的。当 ReactJS 出来的时候,就会试着去玩。当 ionic 还在测试版的时候,就会做一个个 demo。而有意思的是,同我们在《技术的本质》中看到的一样,新的技术都是基于旧的技术产生的。没有一种技术可以无中生有。所以要学习一种新的技术必然不难,只是有时候会难以深入。全栈程序员进阶在思考过一些日子后,我明白了更多的东西。也似乎找到了两条更有意思的成长路线:构架设计在我打算试着写一个名为 echoes 的 cms 的时候,找到了书架上的几本书:
《架构之美》《面向模式的软件架构》《领域驱动设计》《实现领域驱动设计》《软件框架设计的艺术》发现书中提及到的一些模式似乎已经很常见了,要理解起来已经变得很简单,看上去那些更像是一个又一个的项目的缩影。更主要的点还有: 架构师并不是最好的程序员,但是知识面一定要广。只有有着更多的知识才能决定好方案,如果我们只深入一部分知识,那么我们无法总做出正确地决定。所以,也必须也是一个好的成长方向。成为专家

移动
Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号