- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
出色的软件工程师善用设计模式,勤于代码重构,编写单元测试,并对简单有宗教般的追求。除了这些,优秀的软件工程师还要通晓10个概念,这10个概念超越了编程语言与设计模式,软件工程师应当从更广的范围内明白这些道理。
界面 (Interfaces )
惯例与模板 (Conventions and Templates)
分层 (Layering )
算法的复杂性 (Algorithmic Complexity)
散列法 (Hashing )
缓存 (Caching )
并发 (Concurrency )
云计算(Cloud Computing )
安全(Security )
关系数据库 (Relational Databases )
10. 关系数据库 (Relational Databases)
关系数据库因为在大规模 Web 服务上缺乏可扩充性而颇受微词,然而,关系数据库仍然是近20年来计算机技术中最伟大的成就。关系数据库对处理订单,公司数据方面有着出色的表现。
关系数据库的核心是以记录表示数据,记录存放在数据库表,数据库使用查询语言(SQL)对数据进行搜索与查询,同时,数据库对各个数据表进行关联。
数据库的标准化技术(normalization)讲的是使用正确的方式对数据进行分存以降低冗余,并加快存取速度。
9. 安全 (Security)
随着黑客的崛起与数据敏感性的上升,安全变得非常重要。安全是个广义的概念,涉及验证,授权与信息传输。
验证是对用户的身份进行检查,如要求用户输入密码。验证通常需要结合 SSL (secure socket layer)进行;授权在公司业务系统中非常重要,尤其是一些工作流系统。最近开发的 OAuth 协议可以帮助 Web 服务将相应信息向相应用户开放。Flickr 便使用这种方式管理私人照片和数据的访问权限。
另外一个安全领域是网络设防,这关系到操作系统,配置与监控。不仅网络危险重重,任何软件都是。Firefox 被称为最安全的浏览器,仍然需要频频发布安全补丁。要为你的系统编写安全代码就需要明白各种潜在的问题。
8. 云计算 (Cloud Computing)
RWW 最近的关于云计算的文章 Reaching For The Sky Through Compute Clouds 讲到了云计算如何改变大规模 Web 应用的发布。大规模的并行,低成本,与快速投入市场。
并行算法发明以来,首先迎来的是网格计算,网格计算是借助空闲的桌面计算机资源进行并行计算。最著名的例子是 Berkley 大学的 SETI@home 计划,该计划使用空闲的 CPU 资源分析太空数据。金融机构也大规模实施网格计算进行风险分析。空闲的资源,加上 J2EE 平台的崛起,迎来了云计算的概念:应用服务虚拟化。就是应用按需运行,并可以随着时间和用户规模而实时改变。
云计算最生动的例子是 Amazon 的 Web 服务,一组可以通过 API 进行调用的应用,如云服务(EC2),一个用来存储大型媒体文件的数据库(S3),索引服务(SimpleDB),序列服务(SQS)。
7. 并发 (Concurrency)
并发是软件工程师最容易犯错的地方,这可以理解,因为我们一直遵从线形思维,然而并发在现代系统中非常重要。
并发是程序中的并行处理,多数现代编程语言包含内置的并发能力,在 Java,指的是线程。关于并发,最经典的例子是“生产/消费”模式,生产方生产数据和任务,并放入工作线程消费或执行。并发的复杂性在于,线程需要经常访问共同数据,每个线程都有自己的执行顺序,但需要访问共同数据。Doug Lea 曾写过一个最复杂的并发类,现在是 core Java 的一部分。
6. 缓存(Caching)
缓存对现代 Web 程序不可或缺,缓存是从数据库取回,并存放在内存中的数据。因为数据库直接存取的代价非常高,将数据从数据库取回并放在缓存中访问就变得十分必要。比如,你有一个网站,要显示上周的畅销书,你可以从数据将畅销书榜一次性取回放在缓存中,而不必在每次访问时都去数据库读数据。
缓存需要代价,只有最常用的内容才可以放入缓存。很多现代程序,包括 Facebook,依靠一种叫做 Memcached 的分布式缓存系统,该系统是 Brad Firzpatrick 在工作于 LiveJournal 项目时开发的,Memcached 使用网络中空闲的内存资源建立缓存机制,Memcached 类库在很多流行编程语言,包括 Java 和 PHP 中都有。
5. 散列法(Hashing)
Hashing 的目的是加速访问速度。如果数据是序列存储的,从中查询一个项的时间取决于数据列的大小。而散列法对每一个项计算一个数字作为索引,在一个好的 Hashing 算法下,数据查找
您可能关注的文档
- 两台笔记本电脑共享上网.doc
- 两台电脑共享打印机空间和环境.doc
- 两台电脑共享上网.doc
- 两台电脑共享上网常见的几种解决方法.doc
- 两台电脑共享一根网线.doc
- 辽宁省开原市六校2011届高三上学期第一次联考地理.doc
- 廖祥—问卷数据分析报告.doc
- 点心操作系统介绍.ppt
- 了解手机的工作流程及内部结构.doc
- 零售业如何进行数据分析.doc
- 人教PEP版(2024)新三年级下册 教材解读.pptx
- 第7课《党是最高政治领导力量》第1框《不忘初心、牢记使命》课件 中职高教版中国特色社会主义.pptx
- Unit 3 My week 第三课时Wrap-up time Assessment time课件译林英语四年级上册.pptx
- 第14课《推进绿色发展》第1框《生态文明建设的基本理念》课件 中职高教版中国特色社会主义.pptx
- 1.2地球与地球仪(课时1) 课件 2025七年级地理上册人教版.pptx
- 人教PEP版(2024)新四年级上册 教材解读.pptx
- 第7课《党是最高政治领导力量》第2框课件《坚持和加强党的全面领导》课件 中职高教版中国特色社会主义.pptx
- 第9课《发展社会主义民主政治》第1框《发展全过程人民民主》课件 中职高教版中国特色社会主义.pptx
- 人教版(PEP)四年级上册英语全册教学设计教案表格式.docx
- Unit 3 Places we live in大单元整体教学设计2025人教版英语四年级上册.docx
最近下载
- 八项规定回头看自查报告.pdf VIP
- 2012北京 第一册市政道路、桥梁工程预算定额.pdf VIP
- 华为LTC流程IPD流程ITR流程三大核心流程变革一篇文章就全明白啦V2.0!.pdf VIP
- 普洱哈尼族彝族自治县2025年数学五年级第二学期期末学业质量监测试题含答案.doc VIP
- D-ZD2010发电厂汽水管道支吊架设计手册制造图册-中国电力规划.pdf VIP
- 产科急救应急预案.docx VIP
- 关于社区卫生服务中心五年发展规划十五五发展规划2025.docx VIP
- NBT 25085-2018 核电厂常规岛焊接技术规程.pdf VIP
- 烟草代办合同范本6篇.docx VIP
- 危险废物污染防治责任制度.docx VIP
文档评论(0)