回顾2013 - 技术上
因为自己的执意选择,2013经历了许多“人生第一次”:第一次辞职,第一次更多地体会动态语言python,第一次进入在创业公司的经历,第一次用git到项目,第一次尝试自动部署,第一次更多地了解vps,第一次的nginx,第一次的shell,太爽了能学习更多地vim,太爽了自己能感觉到自己思维活跃,更自由地感受自己学习、进步,还有一直伴随的孤独,2013年第一次遇到的无奈(或许能发展成 隐忍)。
乱糟糟的开头,需要整理的2013年。
知识:
1. python
更多的python理解,一直不停看着`python核心编程`。因为学习python发现、遇到了许多美好的特性,比如 函数编程,doctest测试驱动。
python的简单好用,能轻松接触到更多激发兴趣的知识,比如 便捷的图片处理,便捷的服务器监控,自己写一个简单的服务器,虽然写不了但是可以完整看看有趣的框架,例如webpy。
python在性能上,速度完全能胜任大多数用户的需求。多注意 python自身数据结构的正确使用,编码上也有良好的习惯,比如【多用用 列表(元祖、字典)推导,少用用for】。
自己目前感悟是“看源码”。我看webpy的一少部分源码,会更快地学习到python的各种知识。学习也有利于我的工作。
2. html,大学就会表格布局,后来遗忘,现在因为时不时地用用html,越来越熟悉了。
`-> 这两天又在家了,随手翻翻挑着看《html5 高级程序设计》,我承认我看见这种非常薄的书就欲望读:D
Chrome常常F12,可以不使用firebug,特别推荐的是:Chrome自带各种`设备模拟`,就是说,你可以在Chrome种模拟Nexus 7啊,IOS啊,方便测试网页。
<kbd>最好玩的标签,例:ctrl
常被忽略却有用的`实体转义`,值得一提的 ‘url 编码’,在人肉分析别人url的时候,%什么,也类似。
3. xml,自定义的html。
因为使用webpy的原因,提供xml就是简单return。自己在chrome中,安装插件:XML Tree,帮助语法正确检查。
工作中,常常需要提供给api出去,常用的数据格式就两种:JSON 和 xml。(chrome - JSON view有助于看JSON)
`-> python除了手动拼接字符串生成“xml”,还提供了相对应的库。如果使用,值得看看。
在 sae的配置文件,apache的配置文件,rss订阅格式,小网站的数据库代替品,都使用了 xml。
最近在看 `公开课 - 哈佛大学 - 如何构建动态网站`,英文语速很快,讲得很棒。其中,值得一提,对于小网站,完全可以使用xml 代替 数据库。
只要利用python lxml解析xml,就能方便的处理xml,方便地生成动态网站。
特别想说的是:像THIS中提到的,“xml 换行显示更友好”的问题,这真的是个多余网络开销。toString()方法本来就是“方便人类阅读”,换行显示是多余的。
4. git,红丸蓝丸。用过了git,真的就不想用svn了。
git能提供分支,对于我,最好的就是“方便代码回滚”。一开始就是简单的分支提交,熟练了,稍微增加“分支管理策略 - THIS”。
git还能在hook中,方便代码部署,或者写一个shell脚本来部署代码。真的非常方便。
git init, 便捷地创建自己的代码仓库,别人提交也一样方便~
5. markdown,缩写是MD,让人魂牵梦绕的缩写。
因为github,因为stackoverflow,还因为oschina wiki中的文档,没事都是看着说明,写写md.
马克飞象 - chrome插件,在线编辑md。
顺便一提,markdown可以直接生成html,也好用。
顺便再一提,我的大vim也是可以生成html的!!不告诉你们这些坏人!!
6. webpy,怀念 Aaron Swartz.
最初熟练了webpy而不是django的原因是工作。工作需要使用webpy,主站是用webpy写的。
webpy是只小麻雀,非常非常好用,我们平时处理的GET(),POST()请求,其实只是整个框架的一个回调函数而已。
你完全可以不去使用webpy提供的form,db机制。但是,你又可以仔细阅读webpy的每一行代码,你想怎么读就能怎么读,整个框架都简洁。
比如__slots__ 与 __dict__,这样的系统自定义变量的含义、作用、区别。
webpy代码都会指引你。
7. vim
vim现在就是我的IDE了,可定制的快速输入,你需要多利用利用vim的插件。
使用简单的vim通常会得到 简单的文件结构。
在打开文件的时候会有困扰,可以考虑command-T,这样同样会导致你自己去思考文件名。因为你自己会使用。
8. ubuntu
每天都用,无所不能,魅族也快出ubuntu的产品了。
可以在查找指定文件夹 中 所有文件 中的 关键字kw
find dir/ -name * | xargs grep kw
因为工作关系,基本的top、iostat也得常注意。
crontab计划任务也得用着,系统中如果没有搞得好的线程,crontab 也能更新db内容的排序。
10. nginx
工作中用到,自己就google着学了。简单好用。
现在总结两方面:
a. 使用上:写配置文件(sudo nginx -t)、服务器重启、简单的nginx状态查询(使用了stub_status 模块)、access.log分割备份(分割就是‘重命名,再生成’)、error.log分析(可以指定生成error.log的格式)
b. 开发上:淘宝 连 Tengine都搞出来了。我还假装自己什么啊,要是有时间,周围也有朋友跟你结对,大家一起搞呗。
7. mysql
代码上正常使用python - MySQLdb。
在ubuntu的环境下,直接使用地命令行。在select语句之后加\G 会有更好的显示格式。
工作中,记得备份。备份就是做人厚道不厚道的问题了。
工作中,tail -f 查看slow_log.log,消除slow query。
工作中,对于查询多行但只返回少数结果的语句,代码搞一搞。
服务器出现性能问题,show status查查。explain看看语句。
11. Django,全都做好了,非常欣赏自动生成的后台。
`-> 自己也看了一遍书,自己也照着例子写了写,以后工作中能用到,自己也能多学习吧。
12. js,越来越逆天了,后端也能搞了:D
`-> node.js, jquery
`-> bootstrap
14. tornado
`-> 跟webpy好像啊,性能会有提升,多学学
15. php
`-> 挺常见的,有时间学学
p.s: `-> ,补遗点。