想学习后端开发,请教一点经验

我想学后段开发,前一段时间学了一点Django,发现这个数据库交互的参数怎么这么怪异id__gt,id__lt,设计师就不能{"id":{"$gt":1}},flask要配置什么什么的我也懒得搞。

折腾了这么久,想入门Spring Boot,不知道语法会不会根id__gt一样蛋疼。


说了这么多,问下有经验的小伙伴后段开发怎么入门,顺便问下前后端分离怎么实现

多看书 少上网

你不是在学 clojure 么为啥不用

国内没那么多资料,况且不是主流,以后有哪家公司会要我

django的历史比较久了,从模型到操作方法大量使用了python的反射技巧,硬要说为什么不用字典作查寻语句的话,我猜就是“符合python习惯”吧。。

后端就是crud的操作玩的溜就行,现在基本能restful就restful了,MVC那套不学也没关系(不过和前端倒也是通的),会crud+restful,后端就算会做了,前后端也自然的分离了。

学 Common Lisp + Hunchentoot

你应该反过来想,用的人多竞争就激烈,学个小众语言竞争压力小很多。

1赞

毕竟改变世界的是少数人

可是资料去哪里找呢?如果只有我一个人的话,孤掌难鸣。总不能用NASM汇编写一个吧。
不过最近看Rust挺不错的

资料去官网看,官网不够看就看源码。看一手资料是最好不过的。

我来分享我是怎么学习 Linux 服务端开发的吧。

大学时候初始入门时学习的是 C,学校采用的教材是 The C programming language, 比较经典。现在的话,可以选择 Rust 来入手,没有那么多坑。

起初学习Linux C 一站式编程。虽然这本书是一个培 训机构出的,但是它的内容、质量真得非常高。当时看完之后拿它来写了一个局域网聊天 室。看完这本书的最大用处是对 Linux 有 一点熟悉了,了解了一下 posix apisyscall,深度不够。

然后继续看 UNP(Unix 网络编程), APUE(Linux 环境高级编程),这里绕不开的是 内核。于是自己写了个玩具内核了解了下内核的机制。这里首先参考的是 James 的版本,因为它比较糙,可以 以最快的速度做出来让人有点成就感。随后可以按照 osdev 上的教程系统得走一遍。现 在国内开源的课程也有了,可以直接学习清华的操作系统课程。

coursera 上有门课程 hardware/software interface 不错,对应的教材是 csapp(深入理解计算机系统), 可以给系统一个完整的认识。里面编译、链接相关的内容可以阅读「程序员的自我修养」来 完善一下(当然你也可以挑战自己看 linkers and loaders)。

纯粹看系统相关的也可能会有点无聊,可以找点乐子,例如写个黑白棋AI之类的、刷刷 oj。

然后我是花了比较多的时候学习 C++ 去了(无奈当时根本没听说过 Rust,不然也就不 会学习这么有历史包袱的系统级别语言了)。看了些 C++ 相关的书,这个书单也比较长:

  • c++ primer
  • effective c++
  • more effective c++
  • c++ 模板元编程
  • c++ 程序设计原理与实践
  • 深入探索 c++ 对象模型
  • effective modern c++
  • c++ draft
  • c++ idioms
  • linux 服务端编程 (muduo 为例),这本书算是有一点 c++ 内容,也放在这里好了

然后知道了 reactor, proactor,找了些资料来看,这里必不可少的是 libevent。 使用它、学习它基本是知道了一个网络库该是什么样子。然后可以模仿着 muduo 写个网络 库(也可以直接用它)来写一个监控系统。这就算是一个比较大型的项目了,会涉及到组件 之间的消息交互,然后可以试着使用一些开源中间件来玩,当然玩的同时也要看看源码,例 如 redis 的代码就相对简单,特别是它里面有个比较经典的 ae eventloop 库。

基本上到了这里能够干后端的活了?

休闲读物:

  • linux 大学教程
  • unix 痛恨者
1赞