互联网应用开发需要涉及的技术

根据自已的开发经验,大致做了下随笔总结:

1. 浏览器DOM结构和事件机制,CSS,javascript及其相关框架(jquery,yui等等 ),html, xml,,flash。
2. 字符编码,特殊字符验证和处理,浏览器支持的组件技术比如说ActiveX, applet等,web请求提交的几种方式和特点,浏览器中脚本语言
执行引擎的特点。
3.对于表示层渲染,哪些需要在客户端渲染,哪些需要在服务器端渲染。
4.熟悉HTTP 协议,掌握常用的web server如何实现HTTP协议,处理Http请求。
5.需要深刻理解多线程下应用程序的行为,线程安全是要时刻记在心头的。
6.需要深刻理解常用对象池(线程池,数据库连接池,其他TCP连接池)是如何工作的
  ,不同配置的优点和缺点。
7.TCP/IP协议是网络程序的基础,需要熟悉;同时也需要熟悉一些流行的协议,比如说REST,SOAP,Thrift,SNMP等等。
8.熟悉使用语言的内存分配和回收的机制,对于JAVA工程师,熟悉JVM是必要的。
9.不同级别的设计模式应用(平台级别,应用级别,代码级别),满足系统功能性需求和非功能性需求。
10.熟悉Cache技术,在什么地方使用Cache,缓存什么东西,什么时候刷新缓存,缓存的命中率测定,缓存的额外开销,
  在云计算模式下,不同数据中心的缓存如何同步和刷新。
11.熟悉异步技术,能用异步不用同步,熟悉常用的消息中间件,比如ActiveMQ,IBMMQ,知道什么时候用非阻塞IO。
12.熟悉并行计算技术,哪些任务需要并行计算,如何实现并行计算,可以参照一些开源框架。
13.熟悉预计算技术,哪些任务需要预先计算,(当请求到来时,数据已经准备好了)。
14.熟悉工作流和规则引擎技术。
15.熟悉web编程安全技术,熟悉单点登录技术,熟悉授权技术。
16.服务器群集、负载均衡和failover技术。
17.熟悉国际化和本地化技术。
18.数据库技术,事务隔离级别,数据库调优,数据备份和回复,数据库复制,数据的水平划分和垂直划分,DB sharding技术等。
19,应用程序性能调优技术。内存泄漏,死锁识别技术,CPU负载过高,磁盘和网络IO阻塞。
20. 错误处理和恢复技术
21,服务器和应用健康状态监控,大型互联网应用后台服务器很多,状态监控是非常重要的。
22,自动build,自动部署,和自动化测试技术
先写这么些,有时间在更新,细化。自己也整了网站: http://www.hefei35.com

猜你喜欢

转载自yulhe-cisco-com.iteye.com/blog/1097912