Web前端
Web前端开发工程师:http://baike.sogou.com/v18499271.htm
WEB前端开发面试题集锦:http://wenku.baidu.com/view/47bbcbdc50e2524de5187eae.html
浅谈前端开发的水有多深:http://www.w3cfuns.com/blog-5446428-5400629.html
前端网:http://www.w3cfuns.com/portal.php
后台:
Java / Android / Linux / Web / 网站 后台开发
后台开发部必备知识技能列表:http://wenku.baidu.com/view/9cc1b6054a7302768e99393b.html
(中国电信游戏基地)后台开发面试题:http://wenku.baidu.com/view/320e9e2a2af90242a895e50d.html
涉及到后台的, 一般都是要跟数据库打交道的大型数据量的处理问题。 以类 client - server 为基础的架构, 或者变形后的架构。
客户端处理用户的输入和数据, 然后大量的客户端(多个客户端的多种数据) 反馈到服务端统一处理和协调, 然后服务端对客户端发出相应的指令。
其中 后台程序 代表的就是服务端的程序。 包含以下几点:
1. 网络通信, 要跟远程的client打交道,只能用网络
2. 并发 和 并行处理。0……多个客户端可能在同一时间同时需要处理同一个类型的数据, 谁先谁后,谁的有效谁的无效? 服务端的并发,同步显得非常重要。 同理,每个客户端外表看起来都是立刻接收到服务的,这需要并行化处理。
3. 数据库设计。 大量的数据,必须通过数据库进行管理。但是频繁的数据库写入会导致性能下降,所以要有合理的数据库设计,以及读写控制设计。 然后数据库的备份设计, 万一down掉了怎么办,只能用备份的。这一点在银行等电子商务的后台设计中是重中之重。
4. 良好的扩展性的架构, 后台一直在变的, 因为客户端的需求一直是增加的, 不能因为为了添加一个新功能,影响到旧的功能。
当然针对特殊的后台服务要有特殊的算法作为高级支撑。。
拿baidu和google举例。。 google返回 信息 的有效性 比baidu 优秀的多, 这就是后台组织信息的方式,以及信息的权重比值很好。
还有就是用户行为分析的算法,比如你在当当、卓越上买书,如果是老用户,网站会给你推荐书。 这就是后台对用户的行为进行数据挖掘后分析的结果。
还有每一个后台必须要有的性质就是容错性和稳定性, 开发者要充分考虑到各种肯能出现的问题,并让系统能够容忍这种问题。。
比如我们在写代码是数组、指针访问越界了, 程序崩溃了。。 这种问题在后台程序中绝对不允许出现, 所以设计者要避免这种问题的发生。 要么能够设计出容忍越界访问的程序, 要么直接将数组、指针的访问再封装起来, 以后都用这个封装后的代码进行访问。 这肯定不如直接访问用着爽。
另外补充一下 server的类型:
小型网站: windows Server 2003 足以
虚拟机: xen server
中型,大型站: 我觉得centOS 的安全性比较高。 当然 ubuntu server也行。
我只用过上述这几种server, 当然我没有独立做过后台架构设计, 只是做过服务添加功能而已。但是阅读整体的server代码时,还是觉得他们封装很安全, 有感而发。 觉得这方面还是挺复杂的。
数据库一般小型,中性数据 mysql就好了。。 没用过大型数据库。
我们的后台开发是 java, c++混合的。 用java做逻辑层, c++的计算算法被封装起来, 给java调用。java读写数据库。
众所周知, c++写大型服务程序挺难的。 在不考虑处理速度的情况下, c++程序要为 代码安全性 付出很大的代价。 而且开发周期比 java、c#、pathon 长太多。 有点得不偿失。 如果考虑到多服务器的情况, 纯c++做后台是在是太累了。。
如果不是特殊应用, 比如游戏后台, 搜索引擎后台。 我觉得在服务程序的逻辑层上,c++真的比不上java。 而且算法实现上c++我感觉又不如c简单便捷。 所以c++地位挺尴尬的。 虽然我非常钟情c++,所以但是也得认识到它的不足。至于写后台服务程序, 就不要考虑vc了。 由于服务器迁移等问题,所以要标准。
PC端开发
游戏开发:Android开发工程师/iphone开发工程师/iPad开发工程师/iOS开发工程师