编程语言(精选12篇)
目录其它开发语言后50种开发语言其它开发语言
Position Programming Language Ratings 21 ABAP 0.412% 22 Fortran 0.389% 23 IDL 0.360% 24 dBASE 0.353% 25 ColdFusion 0.338% 26 MATLAB 0.338% 27 Awk 0.311% 28 Prolog 0.296% 29 ActionScript 0.281% 30 T-SQL 0.275% 31 Logo 0.262% 32 Bash 0.235% 33 RPG 0.199% 34 LabView 0.168% 35 S-Lang 0.151% 36 Smalltalk 0.128% 37 REXX 0.128% 38 Forth 0.127% 39 Tcl/Tk 0.120% 40 Icon 0.109% 41 Lingo 0.097% 42 CL 0.087% 43 VBScript 0.084% 44 OCaml 0.083% 45 Objective-C 0.080% 46 Haskell 0.077% 47 ML 0.073% 48 APL 0.073% 49 Bourne Shell 0.070% 50 Maple 0.070%Position Programming Language Ratings 21 ABAP 0.412% 22 Fortran 0.389% 23 IDL 0.360% 24 dBASE 0.353% 25 ColdFusion 0.338% 26 MATLAB 0.338% 27 Awk 0.311% 28 Prolog 0.296% 29 ActionScript 0.281% 30 T-SQL 0.275% 31 Logo 0.262% 32 Bash 0.235% 33 RPG 0.199% 34 LabView 0.168% 35 S-Lang 0.151% 36 Smalltalk 0.128% 37 REXX 0.128% 38 Forth 0.127% 39 Tcl/Tk 0.120% 40 Icon 0.109% 41 Lingo 0.097% 42 CL 0.087% 43 VBScript 0.084% 44 OCaml 0.083% 45 Objective-C 0.080% 46 Haskell 0.077% 47 ML 0.073% 48 APL 0.073% 49 Bourne Shell 0.070% 50 Maple 0.070%
后50种开发语言
一、运用现代教育技术创设情境——感悟语言
1. 画面铺垫, 激情促学
现代教学技术是教师进行教学的重要辅助手段, 是促进学生学习的先进工具。现代媒体能创设美景给学生以多层次的欣赏, 让学生得以美的享受、美的熏陶, 从而在轻松愉悦的学习氛围中, 培养学生听、说、读的技能, 提高他们观察、想象及赏析词句的能力。例教学《小露珠》第一节时, 我用电脑演示露珠的出现过程, 因为小露珠的出现不是一个瞬间的过程, 学生在生活中很容易见到小露珠, 但不易见其渐渐出现的过程。学文至此, 学生迫切希望亲眼目睹一下小露珠出现的过程。于是, 我利用这个现代教育媒体的最佳作用时机, 通过电脑演示将视觉效果 (小露珠的出现过程) 与听觉效果 (小蟋蟀的叫声) 有机地结合起来, 变抽象为具体, 变静态为动态, 化枯燥为生动。抽象思维的障碍、逻辑思维的障碍、语言表达的障碍在此刻被化解了, 降低了学习难度。学生为其形式之新颖, 声画之精彩而耳目一新, 从而产生了乐学情绪, 积极投入到文章的赏析中去。
2. 音乐渲染, 读中自悟
一首《摇篮曲》能使你回到儿时妈妈的怀抱;一首《义勇军进行曲》会让你热血沸腾, 心中敬意油然而生;同样《春天的故事》会使你眼前出现邓小平主席正领着全国人民迎着改革开放的春风不断前进……在我们的语文教学中, 教师就要借助音乐的独特魅力为我们语文教学服务。如《二泉映月》一文中阿炳离学生的生活较远, 如果仅凭教师苍白的语言来引导学生感悟作者饱含深情的语言, 领略阿炳非凡的艺术才华, 体会阿炳热爱生活、追求理想、敢于同命运抗争的精神, 这显然是不够的。于是, 我在学生初步感知课文内容后, 用电脑出示了坐落在“天下第二泉”旁阿炳的塑像, 并播放了充满诗情画意的《二泉映月》, 饱含深情地范读课文, 《二泉映月》使同学们一步步地走近阿炳, 你听, 那琴声委婉连绵, 像痛苦的叹息, 又像深情的赞美;随着旋律的升腾跌荡宕, 乐曲进入高潮, 由悲愤而怒号, 由怒号而憧憬。从舒缓而又起伏, 恬静而又激荡的琴声中, 学生们感受到阿炳那复杂的内心世界, 他在悲伤慨叹自己的经历坎坷, 漂泊无依;他在愤怒质问:月光虽明, 世道却暗, 泉水虽甜, 人世却苦, 水面虽平, 人间不平;他在拼命抗争, 生活的贫困和疾病的折磨泯灭不了他对音乐的热爱和对光明的向往;他在深情赞美恩重如山的师父和给自己创作灵感的清泉明月。听着这如歌如泣的美妙音乐, 学生们不禁泪花闪烁, 捧起课本开始细细品读。没有讲解, 没有问答, 你能说学生没有感悟课文中的语言吗?你能说学生的情感没有泛起涟漪吗?
二、运用现代教育技术唤起回忆——积累语言
“为学之道在于厚积而薄发”, 只有读得多, 记得多, 积沙成塔, 应用起来才会左右逢源, 得心应手, 达到古诗所形容的“胸藏万汇凭吞吐, 笔有千钧任翕张”的境界, 如果仅用一个硬邦邦的“背”字, 学生就能轻松愉快地积累语言了吗?事实显示:不能。机械的记忆费时大, 收效小, 只能加重学生的负担, 扼杀学生学习的积极性。在平常的语文教学中, 我凭借现代教学媒体的直观性、形象性, 精心组织教学, 努力使学生学得好, 记得牢, 用得上。例如《三亚落日》这篇文章语言优美, 是学生积累语言的好材料。为使学生轻松积累, 记忆深刻, 出口成章, 下笔成文, 我先让学生用“”划出自己喜欢的词句, 美美地饱读, 然后电脑出示与文中景色相似的镜头进行定格, 并相机询问:“看到这个镜头, 你想起了文中的哪个词语?”镜头不断改变, 于是“玉屑银末”“赤朱丹彤”等优美词语, 学生立刻变书本的为己有。于是我趁热打铁, 鼓动学生打开笔记本摘录好词, 加深印象。由易到难, 由词到句, 甚至到段, 再引发欲望, 打开思维, “看到这个镜头, 你想起了文中的哪个好句?”依旧是原来的镜头, 要求不同, 学生的收益也不同。此时有了重点词的铺垫, 文中佳句从学生的口中顺利地涌出, 没有一个“背”字, 学生轻松快乐地积累了语言。
阅读课如果仅着眼于课文知识是远远不够的, 必然在课堂中穿插收集一些与教学内容相关的片段或知识来丰富学生语言, 但传统教学受时空限制, 可谓是“心有余而力不足”, 有了现代教育媒体, 事情就好办多了。例如《音乐之都维也纳》一文, 作者的描写令人神往, 波光粼粼的多瑙河, 举世闻名的音乐家, 用音乐装饰起来的城市, 著名的国家歌剧院, 这一切的一切, 如果仅仅局限于书本的学习, 学生会显得意犹未尽。于是, 我布置学生跑图书馆, 上网浏览, 运用一切可以利用的资源查询一切有价值的资料。于是, 河水清澈、景色秀美的蓝色多瑙河呈现于学生们的面前了;各大著名音乐家的资料罗列于教室墙壁上了;国家歌剧院就像是一件完美的艺术品展现在学生面前了, 就连宋祖英在国家歌剧院所开音乐会的情景也被学生制成录像搬到了课堂上, 再配上幽雅轻快的华尔兹圆舞曲。就这样, 音乐之都维也纳由静变动, 由虚为实, 学生们一边欣赏这美丽动人的画面, 一边用文中语言为其作讲解, 积累语言, 这不是两全其美的事吗?如果长期积累, 我相信学生记忆仓库里的词句肯定会丰富多彩, 层出不穷的。
三、运用现代教育技术冲破时空——运用语言
运用语言是语文教学 (下转第28页) (上接第27页) 的目的, 然而, 运用语言大都需要气氛、场景。现代教育技术以视听同步化, 图像动态化, 再现生活、景物、事件等优点, 克服了传统教学“四面楚歌”的现象, 能使学生插上想象的翅膀, 从而打开话匣子。如孟浩然的《过故人庄》这首诗, “语淡而味不薄”, 一个普通的农庄, 一次鸡黎饭的普通款待, 但在这朴实平淡的描写中, 蕴藏着浓厚的情味。如何引导学生从“淡语中”尝到“不薄之味”呢?首先, 我先让学生理解诗句, 再加以丰富的想象。然后把自己的所思所想绘制成美丽的风景画, 接着再根据诗句“开轩面场圃, 把酒话桑麻”展开合理的想象, 诗人与友人“把酒话桑麻”时会怎么做, 怎么说呢?然后再找一个学习伙伴一起表演。于是课堂沸腾了, 学生们争着展示自己所绘之杰作, 抢着与伙伴一露自己能说之口才。最后, 我请出小组代表来到实物投影前, 让学生的精彩之作展现于每位学生面前, 让学生与学生“把酒话桑麻”。农村的恬静、简朴, 友人间的饮酒闲谈, 无拘无束, 在借助实物投影的同时, 被学生们演绎得淋漓尽致, 此时的课堂, 学生哪来的学习负担, 此样的课堂, 学生哪能没有学习兴趣呢?
普林斯顿大学回信说不接收女学生。利斯科夫表示,现在回想起来,“我当时收到这样的回信感到很吃惊,当时自已比较天真,就这样被他们轻易的打发走了。”
那时很多女性都知道她们在某些领域并不受欢迎,但利斯科夫从不考虑这些,她从来不在乎什么是允许或不允许她去做的,而这种性格造就了她伟大的一生。1968年,利斯科夫成为第一个在美国拿到计算机博士学位的女性,她现在已经是麻省理工学院电子工程与计算机科学院的教授,以及人工智能实验室程序设计组的主任。她在操作系统、分布式系统、编程语言及方法论等领域的研究都获得了重大突破。她的思想促使了现代编程语言基础的形成,比如Java语言,它将数据与指令组合在一起,可以一次开发并在多个终端复用。她对于如何保证分布式系统可靠性的研究为很多成果奠定了根基,比如谷歌遍布世界的服务器架构。2009年夏天,美国计算机协会为她颁发了图灵奖,这项荣誉被称为“计算机界的诺贝尔奖”。
“如果没有芭芭拉的诸多开创性的重大贡献,很难想象今天的编程与分布式系统将是什么样子。”约翰·古塔格(John Guttag)说道。古塔格是麻省理工学院计算机科学与工程学院的教授,他认识利斯科夫已经30多年了,他在2008年曾写信力荐芭芭拉成为麻省理工学院学院教授。同时,也是古塔格提名利斯科夫为图灵奖候选人,他指出,推荐利斯科夫的很多著名计算机科学家“都同意她的研究成果很丰硕”,但“究竟其中的哪项研究最伟大就有所争议了”。古塔格认为,这恰好证明了利斯科夫的研究范围的广度和深远影响。
利斯科夫一直留着齐边卷发,总喜欢穿着奇奇怪怪的袜子。她并不在意那些曾经获得的成就或荣誉。除了图灵奖外,她还在2004年获得了电气和电子工程师协会颁发的冯诺·依曼奖(John yon Neumann Medal)。在计算机这个由男性主宰的领域中,她走出了属于自己的路。
芭芭拉·利斯科夫的职业生涯从计算机领域起步时就开始了。毕业后她并没有继续在数学领域深造,而是在一家位于波士顿的非营利组织Mitre工作。在联邦政府的资助下,该组织从事系统工程与信息技术领域的研究。那时,几乎没有人对计算机领域有经验。“一些人曾当过工程师,而其他人可能是文科毕业的。”利斯科夫回想当年,“那时庸人是看某人是否有兴趣干这个。”
后来利斯科夫参与了哈佛大学的一项研究,自动将英语句子翻译为计算机可以理解的语言。尽管自然语言处理是计算机科学直到目前都一直在研究的难题,但当时人们认为这个问题几年就可以攻破。
她从这项工作中学习到很多,但利斯科夫决定重返校园,更快地吸纳更多知识。她决定前往斯坦福大学,那里即将开设计算机科学的博士课程。
尽管她之前研究的是人工智能领域,但利斯科夫发现她真正的兴趣是计算机设计的基础——操作系统与编程语言。她觉得人工智能提出了一系列难题,并且进展缓慢。但在计算机系统的研究方面,“你可以开发应用程序去真正实现某些操作。”她说,“我只是想在那些更容易取得进步的领域进行科学研究。”
离开斯坦福大学后,利斯科夫作为一名研究员重回Mitre,随后她立马加入到研发Venus操作系统的项目中,这是一项允许多人同时操作同一台小型计算机的研究。因为浏览了很多关于程序设计的文献,“我当时想设计一种不同于人们通常所讨论的操作系统。”她尽可能简单地定义了操作系统,跳出了先前诸多复杂定义的束缚,新的系统破茧成型。
利斯科夫向操作系统原理研讨会提交了一篇有关Venus操作系统的文章,该会议吸引了众多学术界与工业界的研究者。现在是麻省理工学院计算机系终身教授的杰瑞·萨特尔(Jerry Salter)当时看到利斯科夫的报告后,鼓励她去麻省理工学院教课。1972年,利斯科夫成为麻省理工学院计算机专业第一名女性教师。
在麻省理工学院,利斯科夫全身心地将其想法投入到系统研究中。她与研究生斯蒂文·齐勒斯(Steve Zilles)合作,想到许多有关如何管理计算机程序以使其更容易编写、修改与维护的点子。
任何复杂的软件程序都是由许多部分组成的复杂关系结构,通常需要一组工程师花很长时间才能修改。任何改变都会对软件的其他部分造成影响,这就需要程序员从根本上重写程序。利斯科夫通过将程序离散化解决了这个问题,这样改动将更少地影响特定模块之外的代码。
因为很难将自己的思想向程序员说明,利斯科夫设计了一种编程语言,将其思想直接置入其中。“我对于程序的好坏有很强的直觉。”她说,“我想让人们更容易地写出好程序,虽然没法阻止人们写烂程序,但可以使他们不那么容易写出烂程序。”
她设计的编程语言叫做CLU,该语言对新一代语言设计者有着深远影响。这是第一种支持数据抽象化的语言,利斯科夫发明的这种技术成为了高级编程语言的基础,其中还引入了其他特性,比如为一般程序处理迭代所用的技术。事实上,该语言对于当今主流的面向对象程序设计的发展有至关重要的作用。
20世纪80年代,利斯科夫对如何支持互联网上的应用产生兴趣。对此,她开始思考如何让程序分离,这样可以使每部分程序运行在许多互联的计算机上。此外,她设计了一种可利用闲置机器的新协议,这样的分布式系统可以防止计算机、通信连接,以及磁盘存储中不可避免的错误,且不必将它们分离。她的研究可解释为什么谷歌的搜索引擎可以在全球范围内人们同时添加、修改、删除数据的情况下保持工作。
“那时许多人开发的程序对20世纪80年代的系统很有用,但对于2000年后的系统则没什么用。”古塔格说,“但芭芭拉在20世纪80年代开发的程序和如今的程序设计仍然有所关联,甚至比原先更加有用。”事实上他认为,“人们对复杂系统提出苛刻要求的一个原因是,芭芭拉向人们证明了,构建出可靠的系统是可以做到的。”
如今,利斯科夫表示她对在线信息存储的安全问题很感兴趣,特别是如医疗记录这样的个人信息的安全。和原先一样,她致力于设计能促进良好编程习惯的系统。她问道:“往平台中添加什么可以使程序员更容易开发出不会泄露信息的程序呢?”
利斯科夫意识到,信息泄露的方式多种多样,多到以至于看来无法解决。她现在的研究着重于那些最常见的数据保护问题,比如笔记本丢失,或不小心将私密的电子邮件信息发给陌生人所引起的信息泄露。在政策制定者与倡议者对未来网上隐私进行争论之时,利斯科夫选择安静地进行学术研究,确保人们需要的时候已经有相应的解决方案。她说:“当我们在讨论新技术时,应该考虑到政策法规总是比新技术慢一拍。”
Android是一个移动设备的软件套件,它包括一个操作系统、中间件和关键应用。Android SDK提供必需的工具和API,并基于java语言开发。
特征
应用程序框架 组件的重用和自定义
Dalvik虚拟机 为移动设备优化
一体化浏览器 基于开源的webkit内核
图形优化 提供一个定制的2D图形库,3D图形基于OpenGL(硬件加速可选)
SQLite 结构化数据存储
多媒体支持 对通用的音频、视频、图像提供支持
GSM技术 (依赖于硬件)
蓝牙,EDGE网络,3G和WiFi (依赖于硬件)
摄像头、GPS、方向和速度传感器 (依赖于硬件)
2、Android SDK介绍
Android Software Development Kit.它提供了在Windows/Linux/Mac平台上开发Android应用的开发组件,包含了在Android平台上开发移动应用程序的各种工具集。
如何学习安卓编程
3、系统组件介绍
Android应用程序由一些零散的有联系的组件组成,通过一个工程manifest绑定在一起。在manifest中,描述了每一个组件以及组件的作用,其中有6个组件,它们是Android应用程序的基石。
4、SQLite技术详解
Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。本文介绍了Android中的SQLite使用、类的介绍和数据的操作方法。
5、由简至难 NDK最强
Android现在实在太火啦,运营商、手机商、平板电脑厂商都在推,甚至家电厂商们也开始涉足,对Android程序开发者的需求激增,人才的培养需要一个过程,等?不可能,高价招聘?不值当,大量的企业都在寻找Android软件开发的其他方式。
怎样学习Java
1.不要看到别人的回复第一句话就说:给个代码吧!你应该想想为什么。当你自己想出来再参考别人的提示,你就知道自己和别人思路的差异。
2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久都是只对部分功能熟悉而已,不系统还是不够的。
3.看帮助,不要因为很难而自己是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,总觉得不够直观。
4.不要被对象、属性、方法等词汇所迷惑;最根本的是先了解最基础知识。
5.不要放过任何一个看上去很简单的小问题--他们往往并不那么简单,或者可以引伸出很多知识点;不会举一反三你就永远学不会。
6.知道一点东西,并不能说明你会写脚本,脚本是需要经验积累的。
7.学脚本并不难,JSP、ASP、PHP等等也不过如此--难的是长期坚持实践和不遗余力的博览群书; 8.看再多的书是学不全脚本的,要多实践
9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 10.学习脚本最好的方法之一就是多练习;
11.在任何时刻都不要认为自己手中的书已经足够了;
12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看;
13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍;
14.请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件;
15.把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中;
16.不要漏掉书中任何一个练习——请全部做完并记录下思路;
17.当你用脚本到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个代码的完整性,然后分析自己的错误并重新编写和工作。
18.别心急,写脚本确实不容易;水平是在不断的实践中完善和发展的;
19.每学到一个脚本难点的时候,尝试着对别人讲解这个知识点并让他理解----你能讲清楚才说明你真的理解了;
20.记录下在和别人交流时发现的自己忽视或不理解的知识点;
21.保存好你做过的所有的源文件----那是你最好的积累之一;
22.对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先你要学会自己找答案,比如google、百度都是很好的搜索引擎,你只要输入关键字就能找到很多相关资料,别老是等待别人给你希望,看的出你平时一定也很懒!
23,到一个论坛,你学会去看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了,做为初学者,谁也不希望自己的帖子没人回的。
24,虽然不是打击初学者,但是这句话还是要说:论坛论坛,就是大家讨论的地方,如果你总期望有高手总无偿指点你,除非他是你亲戚!!
讨论者,起码是水平相当的才有讨论的说法,如果水平真差距太远了,连基本操作都需要别人给解答,谁还跟你讨论呢。
浮躁的人容易问:我到底该学什么;----别问,学就对了;
浮躁的人容易问:Js有钱途吗;----建议你去抢银行;
浮躁的人容易说:我要中文版!我英文不行!----不行?学呀!
浮躁的人分两种:只观望而不学的人;只学而不坚持的人;
浮躁的人永远不是一个高手。
怎样学好C#编程
1、打好坚实的基础:变量、流程控制语句、类、接口、特别是继承关系,一定要理解,当然刚开始的时候肯定理解程度不深,但至少要求记住。
2、看别人写的程序,完整看完一个例子。比如一个c#编写的简单网站。然后好好的思考下,给你的启发,哪些地方让你理解了基础知识没理解透的内容,哪些地方让你茅塞顿开!
3、自己动手去做。自己动手写一个完整的程序,不急着编码,先想想自己做的程序都要实现什么功能,程序的结构应该怎样设计:是不是要用到接口、怎样可以提高代码的重复利用率等等;甚至可以用纸笔画画,心中有了一个基本的框架,然后再编码,遇到难点写不下去时多上网和同行交流。
4、有了自己的第一个程序,然后就是回过头来总结了,记住一定要善于总结自己在实践中的经验。如果你回过头来发现你以前写的程序是多么的“嫩”,证明你就在进步了。发现以前自己没有掌握的东西,再进一步去深研。
★ 编程简历范文
★ 编程爱好者学习心得
★ 想学习编程怎么从零开始学习
★ 大学生编程实习工作报告
★ 大学生编程实习总结
★ 编程笔试题解析
★ 编程猫教学设计
★ 编程类论文致谢
★ 生物科学专业排名
亚里士多德:日常语言、科学语言和哲学语言
亚里士多德从思维与存在的关系角度,对语言的层次进行了划分,他提出了约定俗成语言论、由种加属差来定义的本质主义语言论、不能定义的最高的`种即哲学范畴的意义分析理论.深入理解和把握亚里士多德的日常语言、科学语言和哲学语言三种不同语言形式的思想,对现代哲学的研究具有重要意义.
作 者:张守夫 作者单位:吉林大学,长春,130012 刊 名:理论探索 PKU英文刊名:THEORETICAL EXPLORATION 年,卷(期):2006 “”(2) 分类号:B502.233 关键词:亚里士多德 日常语言 科学语言 哲学语言电脑语言有很多种,但目前,最常用的是下例数种:
algol(或algol)--alogarithmic language,“算法语言。?”这是一种使用代数符号(algebraic notation)的电脑语言。
basic(或basic)──beginners all-purpose symbolic instruction code.“初学者的通用符号指令码”。这是利用普通的英文术语的电脑语言。
cobol(或cobol)──common business oriented language,“面向商业的通用语言”。这是工商业和政府机关常用的电脑语言。
fortran(或fortran)──formula translator,“公式翻译程序”。?这是用于有关科学技术及代数运算等方面的电脑语言。
TIOBE年度编程语言的评选标准主要是2009年市场占有率增长最快的语言。Google在2009年11月发布Go语言后, 该语言的使用率持续上升, 短短3个月就获得了1.25%的增长。屈居第二的是苹果的Objective-C, 与Go相差仅有0.01%, 它在2009年获得了1.24%的增长。
尽管Go语言现在还处在一个很不成熟的阶段, 但很多顶级程序员参与其设计和代码改进使得人们对它充满信心。这样快速上升的语言令人瞠目结舌。Go在上个月完全没有排名, 而这个月已经升到了13名。这个跳跃式的变化可能是如今开发文化的一个必然产物:新的信息以光速的速度在全球得以传播。
PHP在2009年增长了1.19%, 在《2009年9月编程语言排行榜:PHP杀进前三强》中, 曾以PHP的历史性突破为题分析了PHP的历史和发展, 如今, PHP已经超越VB和C++成为增长率榜单的第三位。
软件的生命性
软件是有生命的,这可能是老调重弹了,但是因为它事关分层架构,反复强调都不过分。
一个有生命的软件首先必须有一个灵活可扩展的基础架构,其次才是完整的功能。
目前,很多人对软件的思想焦点还是落在后者:完整的功能,觉得一个软件功能越完整越好,其实关键还是架构的灵活性,就是前者,基础架构好,功能添加只是时间和工作量问题,但是如果架构不好,功能再完整,也不可能包括未来所有功能,软件是有生命的,在未来成长时,更多功能需要加入,但是因为基础架构不灵活不能方便加入,死路一条。
正因为普通人对软件存在短视误区,对功能追求高于基础架构,很多吃了亏的老程序员就此离开软件行业,带走宝贵的失败经验,新的盲目的年轻程序员还是使用老的思维往前冲。其实很多国外免费开源框架如ofbiz compiere和slide也存在这方面陷阱,貌似非常符合胃口,其实类似国内那些几百元的盗版软件,扩展性以及持续发展性严重不足。
那么选择现在一些流行的框架如Hibernate、Spring/Jdonframework是否就表示基础架构打好了呢?其实还不尽然,关键还是取决于你如何使用这些框架来搭建你的业务系统。
存储过程和复杂SQL语句的陷阱
首先谈谈存储过程使用的误区,使用存储过程架构的人以为可以解决性能问题,其实它正是导致性能问题的罪魁祸首之一,打个比喻:如果一个人频临死亡,打一针可以让其延长半年,但是打了这针,其他所有医疗方案就全部失效,请问你会使用这种短视方案吗?
为什么这样说呢?如果存储过程都封装了业务过程,那么运行负载都集中在数据库端,要中间J2EE应用服务器干什么?要中间服务器的分布式计算和集群能力做什么?只能回到过去集中式数据库主机时代。现在软件都是面向互联网的,不象过去那样局限在一个小局域网,多用户并发访问量都是无法确定和衡量,依靠一台数据库主机显然是不能够承受这样恶劣的用户访问环境的。
从分层角度来看,现在三层架构:表现层、业务层和持久层,三个层次应该分割明显,职责分明,持久层职责持久化保存业务模型对象,业务层对持久层的调用只是帮助我们激活曾经委托其保管的对象。所以,不能因为持久层是保管者,我们就以其为核心围绕其编程,除了要求其归还模型对象外,还要求其做其复杂的业务组合。打个比喻:你在火车站将水果和盘子两个对象委托保管处保管,过了两天来取时,你还要求保管处将水果去皮切成块,放在盘子里,做成水果盘给你,合理吗?
上面是谈过分依赖持久层的一个现象,还有一个正好相反现象,持久层散发出来,开始挤占业务层,腐蚀业务层,整个业务层到处看见的是数据表的影子(包括数据表的字段),而不是业务对象。
当然适量使用存储过程,使用数据库优点也是允许的。按照Evans DDD理论,可以将SQL语句和存储过程作为规则Specification一部分。
Hibernate等ORM问题
现在使用Hibernate人也不少,但是他们发现Hibernate性能缓慢,所以寻求解决方案,其实并不是 Hibernate性能缓慢,而是我们使用方式发生错误:
“最近本人正搞一个项目,项目中我们用到了struts1.2+hibernate3,由于关系复杂表和表之间的关系很多,在很多地方把lazy都设置false,所以导致数据一加载很慢,而且查询一条数据更是非常的慢。”
Hibernate是一个基于对象模型持久化的技术,因此,关键是我们需要设计出高质量的对象模型,遵循DDD领域建模原则,减少降低关联,通过分层等有效办法处理关联。如果采取围绕数据表进行设计编程,加上表之间关系复杂(没有科学方法处理、侦察或减少这些关系),必然导致系统运行缓慢,其实同样问题也适用于当初对EJB的实体Bean的CMP抱怨上,实体Bean是Domain Model持久化,如果不首先设计Domain Model,而是设计数据表,和持久化工具设计目标背道而驰,能不出问题吗?关于这个问题N多年前就争论过。
这里同样延伸出另外一个问题:数据库设计问题,数据库是否需要在项目开始设计?
如果我们进行数据库设计,那么就产生了一系列问题:当我们使用Hibernate实现持久保存时,必须考虑事先设计好的数据库表结构以及他们的关系如何和业务对象实现映射,这实际上是非常难实现的,这也是很多人觉得使用ORM框架棘手根本原因所在。
当然,也有脑力相当发达的人可以实现,但是这种围绕数据库实现映射的结果必然扭曲业务对象,这类似于两个板块(数据表和业务对象)相撞,必然产生地震,地震的结果是两败俱伤,软的一方吃亏,业务对象是代码,相当于数据表结构,属于软的一方,最后导致业务对象变成数据传输对象DTO,DTO满天飞,性能和维护问题随之而来。
领域建模解决了上述众多不协调问题,特别是ORM痛苦使用问题,关于 ORM/Hibernate使用还是那句老话:如果你不掌握领域建模方法,那么就不要用Hibernate,对于这个层次的你:也许No ORM 更是一个简单之道。
Spring分层矛盾问题
Spring是以挑战EJB面貌出现,其本身拥有的强大组件定制功能是优点,但是存在实战的一些问题,Spring作为业务层框架,不支持业务层Session 功能。
具体举例如下:当我们实现购物车之类业务功能时,需要将购物场合保存到 Session中,由于业务层没有方便的Session支持,我们只得将购物车保存到 HttpSession,而HttpSession只有通过HttpRequest才能获得,再因为在Spring业务层容器中是无法访问到 HttpRequest这个对象的,所以,最后我们只能将“购物车保存到HttpSession”这个功能放在表现层中实现,而这个功能明显应该属于业务层功能,这就导致我们的Java项目层次混乱,维护性差。 违背了使用Spring和分层架构最初目的。
领域驱动设计DDD
现在回到我们讨论的重点上来,分层架构是我们使用Java的根本原因之一,域建模专家Eric Evans在他的“Domain Model Design”一书中开篇首先强调的是分层架构,整个DDD理论实际是告诉我们如何使用模型对象oo技术和分层架构来设计实现一个Java项目。
我们现在很多人知道Java项目基本有三层:表现层、业务层和持久层,当我们执着于讨论各层框架如何选择之时,实际上我们真正的项目开发工作还没有开始,就是我们选定了某种框架的组合(如Struts+Spring+Hibernate或Struts+EJB或Struts+ JdonFramework),我们还没有意识到业务层工作还需要大量工作,DDD提供了在业务层中再划分新的层次思想,如领域层和服务层,甚至再细分为作业层、能力层、策略层等等。通过层次细化方式达到复杂软件的松耦合。DDD提供了如何细分层次的方式
当我们将精力花费在架构技术层面的讨论和研究上时,我们可能忘记以何种依据选择这些架构技术?选择标准是什么?领域驱动设计DDD 回答了这样的问题,DDD会告诉你如果一个框架不能协助你实现分层架构,那就抛弃它,同时,DDD也指出选择框架的考虑目的,使得你不会人云亦云,陷入复杂的技术细节迷雾中,迷失了架构选择的根本方向。
现在也有些人误以为DDD是一种新的理论,其实DDD和设计模式一样,不是一种新的理论,而是实战经验的总结,它将前人使用面向模型设计的方法经验提炼出来,供后来者学习,以便迅速找到驾驭我们软件项目的根本之道。
有的女人就像UNIX她条件很好,然而不是谁都能玩的起
有的女人就像C# 长的很漂亮,但是家务活不行,
有的女人就像C++,她会默默的为你做很多的事情。
有的女人就像JAVA,只需一点付出她就会为你到处服务。
有的女人就像JAVA script,虽然对她处处小心但最终还是没有结果。
有的女人就像汇编 虽然很麻烦,但是有的时候还得求它。
有的女人就像SQL,她会为你的发展带来莫大的帮助。
有的女人就像ASP,满街到处都是,成熟漂亮和稳重的只有极少数,
有的女人就像PHP,饱经沧桑(开源),无论经验和内涵都非常的丰富。
有的女人就像dotNet,没有点积蓄还真养不起!
有的女人就像Ajax,使用起来感觉就是爽
有的女人就像jsp,看起来很高贵,可是你玩不起!
有的女人就像html,虽然不高贵,也不好看,但是她是助长美好爱情的根基
有的女人就像DOM,长的很有层级,虽不是长期的助手,但在你有危机的时候,他会挺身而出
有的女人就像DOS,虽然她不美,也不实用,但是她必定是你的初恋女友!
爱情就是死循环,一旦执行就陷进去了。
爱上一个人,就是内存泄露,你永远释放不了。
真正爱上一个人的时候,那就是常量限定,永远不会改变
女朋友就是私有变量,只有我这个类才能调用。
情人就是指针用的时候一定要注意,要不然就带来巨大灾难
活动内容:语言(不同的语言)活动目标:
1.体验学习不同语言的乐趣。
2.知道不同的语言所对应的文字也是不同的。活动准备:
1.“太阳”的中英文字卡片:太阳(中文)、sun(英文)。2.幼儿用书。活动过程:
1.请幼儿观察幼儿用书,说说每幅图中上下两行的文字有什么不同。2.观察卡片,感受不同国家的文字区别。
教师:卡片上有什么?你知道太阳用英文怎么表达吗?
教师小结:同一物体在不同的国家有什么不同的表述方式,如:太阳,中文读作“太阳”英文读做“sun”;中文读作“书”,英文读作“book” 3.教师教幼儿读幼儿用书中的文字,感受学习不同语言的乐趣。
每次上《荷塘月色》的时候,学生都反映:老师,这篇课文没意思,你不觉得作者的生活离我们很远吗?什么大革命失败,知识分子的苦闷!……我总是表现出很悲哀的样子,感叹了一声:现在的学生啊……但,静下来想想,也许是我忽略了学生的感受。
教学构想:
从语言入手,寻找突破。以文章的第四、五、六三段为载体,引导学生赏析语言,激发学生学习探究的兴趣,营造语言涵泳品味的情境,调动学生情绪体验,感受语言艺术之美。
教学片段:
导入后我设计了两个大问题,引导学生展开充分的讨论。
师:首先齐读第四段,初步感知、体会。然后用幻灯出示修改版的荷塘:
幻灯显示:荷塘上面,全是叶子。叶子出水很高,中间零星地点缀着些白花,有开着的,有打着朵儿的。微风过处,送来清香。这时候叶子和花也有一丝的颤动,霎时传过荷塘的那边去了。叶子底下是流水,遮住了,不能见一些颜色;而叶子却更加风致了。
对比分析朱自清的荷塘和我的荷塘,很明显,美与不美,一目了然,天壤之别了。
此时,我便放手让学生赏析第四段“美在哪里”。
评析:如果让学生直接赏析朱自清的语言艺术,恐怕生硬,而且会有副作用,于是我设计了一段没有任何修饰的文字,两相比较,不言自明,学生自然能联系所学知识,逐一赏析。
生1:比喻——叶子出水很高,像亭亭的舞女的裙。本体是叶子,喻体是舞女的裙。
生2:拟人——有袅娜地开着,有羞涩地打着朵儿。袅娜是鲜花盛开的样子,羞涩则是含苞待放的模样,写得非常生动形象。
生3:像闪电般,比喻。
生4:肩并肩密密地挨着,拟人。
生5:脉脉的流水,拟人。流水含情脉脉,饱含深情,却是无声地流着。
师:“脉脉”是一个叠词。段落里还有不少叠词。叠词有两大作用,一是舒缓语气,减慢节奏;二是修饰描摹。请同学们选择几个,体会一下。
学生举例:“田田”、“层层”。两个词都是修饰叶子,但侧重点不同。田田,突出荷叶很密,是横向的,平面的感觉;而层层,则侧重高低,纵向的,有横有纵会更有立体感。
师:(赞赏)非常好。请大家再看看第四段“曲曲折折的荷塘”和第二段“曲折的小煤屑路”。读一读,感觉有什么不一样吗?
生:开始的时候作者心情“颇不宁静”,迫切想去一个宁静的去处,因而,用的是“曲折”,节奏快一些。而“曲曲折折的荷塘”在第四段,作者这时已经发现了一个可以让他“受用无边的荷香月色”的好地方,心情自然放松下来了,因而,语言节奏也该放慢了,叠词可以有这样的表达效果。
生:比喻——微风过处,送来缕缕清香,仿佛远处高楼上渺茫的歌声似的。本体是清香,喻体是歌声,写出了清香渺茫,断断续续,若有若无的特点,感觉很有味道。
师:什么味道?
生:清香和歌声,感觉不一样,一个是嗅觉,一个是听觉。
师:很好,这就叫通感。通者,打通;感,感觉。打通感觉,就是通感。朱自清是现代白话作家中比较早去巧妙运用通感的。
拓展一下:有一首歌,《暗香》知道吗?……声音很粗……笑容甜美……
评析:拓展的意义有二,一是进一步理解通感这种修辞;二则能有效调节气氛,让热烈的气氛稍微冷却,制造有起有伏的课堂节奏。
探究辨析:
师:我们已经感受到,荷塘月色,作者写得很有味道很美,但同样是这样的语言,也有人持有很鲜明的反对、否定的意见。教师此时抛出对这篇文章有不同看法的观点:
余光中——朱文的譬喻虽多,却未见如何出色。且以溢美过盛的荷塘月色为例……十一句中一共用了十四个譬喻,对一篇千把字的小品文说来,用喻不可谓之不密。细读之余,当可发现这譬喻大半浮泛,轻易,阴柔,在想象上都不出色。在想象文学中,明喻不一定不如隐喻,可是隐喻手法毕竟要曲折、含蓄一些。朱文之浅白,这也是一个原因。唯一的例外是以睡眼状灯光的隐喻,但是并不精警,不美。
庄周《齐人物论》——“《荷塘月色》……情感暧昧,联想不出香草美人,比喻无不家常庸劣。……乍别妻儿,方沿荷塘,满心满眼却尽是‘亭亭的舞女的裙’、‘刚出浴的美人’, ……恶俗之气,弥漫荷塘。”
师:你觉得余光中、庄周二人的意见有道理吗?(学生讨论热烈)
评析:教师的任务就是在学生生成理解和意见的基础上进行点拨、引导、评判。学生的争论,主要方向应该放在“恶俗”之说的评判、比喻的“家常庸劣”与否(想象是否不出色)。
……
生:“舞女”、“出浴的美人”的确很恶俗,朱自清一想就想到女人,思想有问题。
师:一想就想到女人,这样说有根据吗?除了这里,别的作品有这样的描写吗?
生:《春》里“春天像小姑娘,花枝招展的笑着走着。”
生:《绿》里也有“她松松的皱缬着,像少妇拖着的裙幅;她轻轻的摆弄着,像跳动的初恋的处女的心。”
生:我反对,“亭亭的舞女的裙”并不恶俗。舞女是指跳舞的女子,舞蹈演员,而非歌舞厅里那些袒胸露背的舞女,此舞女非彼舞女,评论者自己想歪了。
师:有道理。我们可以比较少女的裙和舞女的裙之间的区别。
生:“舞女”,翩翩起舞,动感;荷叶舒展与芭蕾舞演员的舞姿很接近。
师:这个比喻中还套着其他的比喻:叶子像舞女的裙,荷茎像舞女,而花便像舞女的容颜;往常都是把面容比喻成花,这个比喻可以让我们做逆向的联想,很有特色。
生:“月光如流水一般”比喻很有特色。
师:不仅比喻有特色,动词也用得很好。“月光如流水一般,静静地泄在这一片叶子和花上。薄薄的青雾浮起在荷塘里。”请同学们用其他词来替换“泻”和“浮”,然后对比效果。
学生讨论,评点。
生:“酣眠固不可少,小睡也别有风味的。”比喻很有味道。“满月”的“朗照”是“酣眠”,痛快、酣畅淋漓;“淡淡的云”遮月,是别有风味的小睡。
师:“小睡也别有风味的”经常被我背成“小睡也别有风味”,有“的”和没“的”有区别吗?
生:有区别,有“的”,感觉语气舒缓一些,温和一些,比如说:他这个人很坏。他这个人很坏的。(非常好)
生:“的”是一个助词,轻声助词收尾,能抑制句调上扬,读来轻盈柔和,这种感觉更符合荷塘月色静谧的意境。
师:关于这个“的”,余光中还有一句评论,一路乱“的”,“的的”不休,说一路乱“的”,夸张了点。不过我们可以来具体分析一下,看朱自清的“的”是不是乱用了。“高处丛生的灌木,落下参差的斑驳的黑影,峭楞楞如鬼一般;弯弯的杨柳的稀疏的倩影,却又像是画在荷叶上。”同学们觉得这里几个“的”,多吗?
学生讨论,教师提供一种修改:
丛生的灌木落下参差而斑驳的黑影,峭楞楞如鬼一般;弯弯的杨柳投下稀疏的倩影,却又像是画在荷叶上。
这样写会不会好点呢?
生:避免了修饰上的混乱。弯弯修饰杨柳,稀疏修饰倩影,但杨柳却不是修饰稀疏的,两者之间是“所有”的关系。参差和斑驳都是修饰黑影的,所以应该用“而”连接。
师:弯弯杨柳的稀疏倩影可以吗?
生:不行,该“的”不“的”,全变味了。
反思:
1.1 特 点
C语言能够灵活并广泛应用于大部分领域中是因为它具有许多特点。
(1) 它的操作相当简易 , 而且灵活性较强 , 并且拥有极为丰富的关键字和控制语言, 达到了9种。所以在实际的编程书写过程中, 它的书写形式也很自由, 甚至可以将一些高级语言的基本结构与其对应的低级语言结合起来, 从而提高程序整体的实用性。
(2) C语言设计范围广泛 , 它不但有多种运算符 , 还能对相应的C语言进行赋值和括号上的强制类型转换, 这些处理都视为C语言的运算符。这样的处理方法会使C语言在运算类型上显得更加丰富, 表现了C语言在表达形式上的多元化。
(3) C语言中有实现顺序、选择顺序和循环顺序3种基本结构, 另外还有9条控制语句及各种运算符。所以如果想要学习掌握计算机标准库函数的使用, C语言程序就是需要掌握的最基本单位。在C语言中, main() 函数就等同于高级语言中的主程序, 而其他函数以子程序的功能出现。所以C语言程序每次执行都要从main() 开始, 当主函数执行完毕后, 才可以宣布程序执行完毕。
(4) 在C语言中 , 包括主函数main() 在内的所有函数都由函数体和函数说明两部分组成, 它们的结构为:【函数类型】函数名 (函数参数表) /执行语句部分/说明语句部分。
(5) C语言的语句与其他高级语言相同 , 都是利用函数中一些可执行语句来进行命令操作和发出的。而且按照各个语句功能和结构的不同, 主要可以分为5类: 首先是控制语句, 控制语句的具体作用就是完成程序操作中的一些控制功能, 它涵盖了C语言中的9条控制语句: 选择结构控制语句中的if() ~else~,switch () ~ 。另外还包括了 循环结构 控制语句 中的do ~while() , for() ~, while() ~, break, continue等。其他控制语句还有goto,reaturn。在函数调用语句方面, 每一个语句都由一个函数调用+一个语句结束标志的分数组成, 其中最为典型的表达式语句就是在赋值表达式之后添加一个分号所构成的赋值语句。
1.2 具体应用
1.2.1混合计算
C语言的编程具体有两种可转换类型 , 第一种在运算时不需要特殊指定, 计算机系统会帮助用户进行自动转换, 比如说5+1.5, 系统会将其中的5转换为5.0再进行运算; 第二种是需要用户手动进行强制的转换类型, 在运算时也要由用户进行指定, 比如说5+ (int) 4.33, 这一运算的整数值结果就是9。
在赋值运算中, 运算符两 侧类型可 能出现不 一致情况 ,这时要先计算等号右侧的内容, 计算完毕后再确认最终结果并依照等号左侧的数值类型进行类型转换。比如说: unsigned int n=65545; short k; k=n.这一语言在执行运算时 , 系统会将整个数值n送至k运算符中, 但是k作为只有16位双字节的短整型, 它的最高符号位决定了它必然是负数, 所以依据补码规律可以得到当k=-1时, 就可以用printf (k=%d/n” ,k) 来证明上述编程语句的准确性[1]。
1.2.2多重运算次序
在C语言中, 会有这样的语句: int n=2; printf (“%d, %d/n”, n*=n+5, ++n)。该语句中表达了一种内涵, 那就是在一条语句中的n变量会呈现出多次运算, 它的运算应该呈现怎样的顺序。C语言经常有变量多重运算的求值顺序, 而这一标准并没有实现过统一规定。所以不同的C语言类型所实现的语言功能和语法规则都各有差异, 它们所执行的结果也不尽相同。当这种情况出现时, 应该首先考虑所使用的C语言的编程系统特征。
另外, 上述语句的格式也应该改写为:
i=++n;j=i*(i+5);printf(“%d,%d/n”,j,i)
语句在经过修改后, 在可读性与移植性方面都有所加强,而且它还在某种程度上避免了二义性这样较难理解的 写法 ,而采用了这种较为容易理解的编程写法。
1.3 C 语言的程序优化
C语言程序优化是在注重程序实现功能性的同时 , 也能提高程序运行效率性的一种优化理念, 这应该是在编写程序时必须关注的部分。
关于循环体内的优化可以考虑用减少程序代码量的方式来增加程序中所使用函数的可读取性。因为系统在执行每一个函数时都会读取和保存, 以求实现进栈出栈操作。所以应该减少函数的调用次数, 减小对系统的负担, 保持程序的运行性能。但也不能不用函数调用, 因为不用函数时程序量变会增大, 这样就破坏了程序的结构和可读性, 也对程序编写不利。所以在函数的优化过程中, 一般会采用 #define宏来优化和定义编程语句, 而在多重循环操作中, 也应该尽量将长循环放置于程序内层, 最短循环放在外层, 这样做可以缩减CPU跨层区循环的频率 , 为CPU减压[2]。
2 Visual Basic 语言
2.1 定 义
Visual Basic for Windows就是VB语言。它不但具有良好的图形用户接口 (Craphic User interface CUI), 满足了它程序语言的合理设计性, 也让其能够完全支持结构化程序设计的大部分对象程序设计语言。另外,VB语言是一种能够综合运用Basic语言结构 化特点的 可视化设 计工具 , 所以它在 满足了Windows操作系统的优越工作环境的同时 , 也汲取了Basic语言编程的简易特性, 是一种非常专业的程序设计语言。
2.2 特 点
VB语言有三大特性 , 可视性、反馈性以及调试性 。可视性 (Visuality) 说明了编程语言设计的直观性, 就像在一张白纸上设计图案一样直观。这样的可视性为计算机编程语言的设计带来了极大便利, 让设计者能够周全考虑每一步编程编写顺序; 反馈性所呈现的是VB语言与用户二者之间的互动性, 这一互动性体现在程序编写的每一个阶段, VB语言会每时每刻都在线为用户提供帮助, 解决编程过程中出现的各种问题; 调试功能是VB语言中的特色功能, 它结合了语言的可视性, 为用户提供了“邻近窗口”和“观察窗口” 两种功能,而且调试功能易于操作且实用性强, 它间接地为提高程序编写效率作出了贡献。
2.3 具 体应用
VB语言中所提供的GUI可视化设计 , 用户可以建立两个表格窗。表格窗1为主表格窗, 这一表格窗中会显示多组菜单、文本框、标签和各种控制对象等。表格窗1的作用是输入参数并进行相关计算; 表格窗2作为次表格窗通常用来显示各种运算结果, 在它的上面也有一组菜单, 这组菜单会控制所有计算结果的输出, 并在需要的时候返回主表格窗。并且,它还会根据每个事件所处理函数的过程和子程序来编写合适的代码, 从而实现各级菜单和控制对象之间的相互呼应及转换。它的具体设计思路如下: 当程序编写开始时运行主表格窗1,然后选择主菜单后进入一级菜单, 随后选择子菜单, 在子菜单中选择所需要的模块, 并按照用户需要设置程序编写类型和参数设计, 在输入既定参数值之后, 就可以通过表格窗2显示结果, 并按照所需要的运算结果来输出打印。再返回主表格窗之后, 一切参数重置, 就可以进行再次的重新计算。
3 C 语言与 VB 语言的语言举例
3.1 C 语 言
3.2 VB 语 言
3.3 编程语言的选用技巧
通过对C语言和VB语言的结 构的运算 对比发现 , VB语言的结构相对最为简单, 而C语言相对较复杂。所以根据这一对比和两种语言的特性, 给出以下两点编程语言的选用技巧。
(1) C语言的移植性相对较强 , 根据它的特点和结构特性, 它可以应用于绝大部分的运行环境之中, 而且它的难度适中, 常常广泛地应用于高校的计算机语言课程学习 过程。所以编程时可以考虑优先选择C语言。
【编程语言】推荐阅读:
c语言编程心得07-22
大一c语言期末编程题10-07
C语言编程期末试题答案10-08
c语言高效编程的几招12-10
编程学习心得07-21
编程软件10-31
数控编程实习12-25
scratch编程教案06-08
编程转职申请报告06-18
plc编程经验02-20