论Java,C# 开发 二类开发的细节与思维

目前WEB开发, 主要就是Java, Asp.net, Php三个方向, 从2005年开始就一直工作于asp.net+sql server方面, 但目前已经分部分精力在搞Java+mysql方面, 元旦之际, 若大办公室一个人在加班, 处理了一些事情后冷静想了一下这二类开发的长缺点这处。

感觉光阴飞逝呀, 自从有了微信后, 小小的节日也给我们这些时尚流的人刷得很隆重似的, 但元旦对我来说, 只是一个普通的日子,在这里祝大家新的一年生活多滋多彩,激情扬溢。

Asp.net开发, 用了几年神器一般的VS IDE与SQL Management Studio, 不管从哪一方面来说, 二个项加起来使用就如和18岁童颜巨乳女优约会般的感觉,温馨美好浪漫甜密。 不会有任何情绪, 从工作到结束, 不会在业务外的地方浪费一丝时间。 虽然是一名工作十年的穷吊丝, 也感觉到自己在某一领域是一名高富帅的感觉。

Asp.net拥有傻瓜式的IDE,使用十年左右时间了, 感觉已经让我失去了对事情摸索的习惯, 习惯一切就是天然无害或污泥而不染的感觉。

从开发环境安装-->新建项目-->页面设计-->代码开发-->代码调试-->日志输出-->生成编译-->项目发布, 在开发方面微软已经是一条龙服务, 比莞式ISO服务还周到。

在服务器运行方面阿里云这个大物又帮我完成了一切,配上几个web服务器, 添加个SLB负载均衡帮我们解决了压力流量分布单点故障, 添加个RDS又帮我们解决了数据库方面的一切问题, 还配有云盾啥啥的, 再配在配一套Hadoop+HIVE离线数据分析平台来进行各部门想要的数据, 一切就是这么完美。

开发人员只解决业务代码, 做一些高并发的地方进行优化, 对一些访问大的页面生成静态页面, ASP.NET发展到现在就像游击队手上拿着机关枪在射杀日本俘虏那样的简单, 小兵张嘎的实现版。

对大项目有完整编制团队可以选择多层开发, 项目经理只管构架, 主程负责接口, 高程负责类实现与一些算法,初程负责一些业务流程代码, 美女帅哥负责前端页面的js,div等等。对小项目三二人团队就用简单的三层开发, 李天平老师已经做出了一个神器, 建设个SQL数据库, 生成了50%的可用代码。(题外:目前在中国很多团队开发工程就三五人,用asp.net来开发简直就是完美的合作, 最近二三年使用Java,感觉真的是晕, 就三五个开发工程师团队开发的项目, 搞SSH框架, 一人负责一个模块, 开发时自己定义一个interface, 再到另一层实现一个类, 我KAO!  在JAVA方面没用SSH框架就好像没脸, 是男人没JJ的感觉, 其实不外乎就是复制,粘贴这些工作!)

asp.net从项目的开始到结束, 不会有半点紧张感觉, 不会出现任何突然间的情绪, 天天唱着小曲上班,吹着口哨下班。 生活感觉还是那么的美好, 要感谢党,感谢祖国,感谢....

但一个完美的东西发展得过于简单, 就没有物以稀为贵的市场需求, 当asp.net工程师越来越贬值, 做着越来越简单的工作时,而且微软对这些东西还收费的时候, 一切都改变了, 当asp.net连吊丝都当不起时, 真不知前路为何方? 前景会如何?

asp.net再不作一些改变, 再过二十年, 相信全中华人民共和国所有14亿群众, 应该没有几个人是不懂这门技术了, 相信到时已经普及到小学一年级的水平了, 如果还有少量公司在用asp.net, 应该是这样: 大公司招一些博士带科班生, 中型公司招一些科班生带培训生, 小型公司招一些培训生带小学生。

当年我们还在用ASP时, 很多人都说, 这等解析型脚本语言的劣货, 不面向OO,加个Com技术也是私生子,早应淘汰。 以前很多asp的公司纷纷转型到asp.net, 这是因为在以前版权问题在中国基本不会发生任何法律问题的时候, 现在不同了, 微软在中国招了千军万马, 成立部门或外包部分区域给其它公司, 对版权进行清查, 而且中国政府也越来越重视盗版问题, 所以asp.net的生存环境就发生了重大的影响, 大公司基本是视而不见, 中型公司是视而不用, 小型公司视为鸡肋。 只有一些公司偷偷的使用或用来做一些内部平台。 从此asp.net不再是上得厅堂下得厨房的18岁童颜巨乳女优。

(这段内容是在我觉得php与asp都是一类解析型的语言为前提下讨论)

当php这种免费脚本型语言整合了免费的mysql, 符合了世界大多公司的胃口, 这种以前给大家BS到井底的脚本型语言又变成了高富帅,不再指责它的页面与代码混乱, 也没有人指责是不是项目式的管理开发, 一切都可以接受, 就像8/90年代穿扎脚的牛仔裤,9/20年代穿宽筒牛仔裤,扎脚的已经快消失了, 但到了2010年后, 扎脚的牛仔裤又很流行了。 这就是市场, 市场决定一切需求, 过去一切的指责在一定需求下也会转变, 不知马克思的转化论有没有帮我们开发人员想过这方面。

我相信asp.net如果放开源码, 免费windows server系统, 免费sql server,再在跨平台上面对mono项目进行收购开源更新,对移动平台开发加强,  不用三天时间, 大家又开始重复以前指责asp的情况, 指责php这类的技术比丑小鸭还丑, 各种以前指责的话题又会重显一次。 虽然对java的冲击虽然没那么明显, 但相信也会改变很多。 很多人会提出, Asp.net性能不好比不上JAVA, 京东就是典型的例子, 最后还是得从asp.net重转java。 如果asp.net开源, 在百花齐放,百家争鸣的环境下, 这些问题应该都是可以得到解决的, 主要是目前没开源,而且平台又收费, 公司还要投入太多成本去研究这东西, 值不值得的问题。

综合以上:Aps.net是一个完美的产品, 但问题就是太过于完美了。  工作可以像游戏一般轻松,没压力,没有物以稀为贵的存在感, 一不小心就给人从穷吊丝的台阶挤下来。

最近二三年经常用到Java开发, 感觉JAVA是一门很不错的技术, 但JavaEE目前在大陆已经给框架绑死了, 开口闭口都是SSH, SpringMVC等等, 在大多公司如果说我是一直用的是servlet,或我单用Struts + mysql类开发, 或只用struts+hibernate开发,你对JAVA技术再叼再牛, 在面试官那里已经是60分以下, 你不会SSH你就是不合格。

在国内的公司, 多数是作坊式迭代开发为主, 团队没有完整的编制(产品经理,项目经理,系统分析师,高程,主程,初程,UI为主)基本上就是三四人的团队,一人做爹又做妈还兼职做钟点工, 开发时先在interface层打完接口, 复制过去实现类里面, 接着写代码, 可能才华太低发现不了这样开发的好处到底在那里, 唯一想到的就是增强了开发人员的ctrl+c/v的键盘操作。

JavaEE开人发员, 多数使用eclipse这个半成品, 如果和vs比起来, 连半成品都不如, 对英文水平好的人来说, 绝对不汉化, 对一些在国内毕业了好久已经把英文还给老师的工程师来说, 汉化成这鸟样, 真的不知怎说, 对存在的项目还要import, 像VS那样有个sln项目文件 , 双击就搞定, 而且import进来了, 还要对jdk的版本进行更新。 环境配置也麻烦, 需要jdk安装, 再建啥java_Home,再下载tomcat, 再建CATALINA_HOME, 再下载mysql, 再配置, 再改mysql.ini, 这些做法就是大家平时所说的OO了吗? 我看就是典型的面向过程。 初学朋友很多可能在运行,调试这二个方面都要搞很久, 为什么总是Source not found, 如果你没选debug, 你设置一万行断点也起不了作用, VS开发里面, 你运行时, 随便点一下,次次有效, 就这叫OO。

大家不要说这些习惯就好,因为这些话题讨论不来, 既然目前大家对代码是否OO又存在这么多的要求呢,为什么不能把这些工作也OO化呢? 我觉得像VS那样有个SLN文件来管理项目一切才是OO。

在SSH方面, 我感觉在国内这种人才流失这么大的环境下, 真的不建议使用。 当你代码真的是错了三岁小孩子都看出来时, eclipse当然会提示你, 有个小红XX标志一下。

但SSH以XML来解决很多问题, 讲啥耦合, 讲效率。

如果在XML里面动了一下, 你怎连启动都启动不起, 这叫OO吗? Java方面的开发工程师整天喊着OO, 像这些工作, 真的是已经OO了吗?Console输出的信息如果你懂的很容易解决, 如果不懂的,需要在百度上翻来翻去。

有时xml文件给人家动了一下, 或在改XML文件中途停一下出去,有人不小心碰了一下键盘,你就惨了。

我个人认为觉得把耦合变成一些配置XML的方法是最笨的,而且还要用到反射, 我真不知道效率怎更好。

举个例子:

首先Asp.net里有一个Page_Load, 任何页面加载时要显示的东西, 在这里整出来就能绑定到页面,不管是控件的值还是其它的数据控件都可以以OO形式进行绑定。

Java首先要转到一个Action, Action处理了再通过变量取得值绑定到页面? 这种设计是一种怎样的OO呢? 我看这是一个真正的面对过程。

再讲MySQL, 最好的IDE也就是Navicat, 只做一些简单的建表, 写写函数, 查询的功能, 大约15%的成品率吧。

综合以上:Java是一种完美的技术,完美的跨平台,完美的移动开发,性能高稳定好,而且开源运行免费, 再配上让人发疯的工具, 让专业的人用这专业的工具做专业的事情, 待遇自然就高,市场需求自然就大。 但工作真的让人烦恼, 同时希望JavaEE潮流不要给一些框架绑定。

二者合结总结:相对于大多数工程师来说, Asp.Net能让你用着高大尚的东西享受着比不起吊丝般的待遇, 而Java让你用着半成品享受着吊丝般的待遇! 关于待遇方面我不太想深入讨论(所谓行行出状元,我讲的是平均数据), 51job自己查查去, 前几天我也查了一下, 前者和后者没得比。 

最后的呐喊, 在互联网信息产品都是免费使用从服务中赚钱的年代, 微软能否改变一下, 让asp.net开源, 运行平台全免费, 加强.NET对移动平台开发的能力, 让asp.net也能进行大公司的视野。 让我的白头发慢长一些时间, 说真的用eclipse 进行SSH开发, 真的让人头疼。

时间: 2024-10-21 15:04:42

论Java,C# 开发 二类开发的细节与思维的相关文章

从0开始 独立完成企业级Java电商网站开发

第1章 课程介绍(提供4900+问题与答案库)(提供4900+问题与答案库,你遇到的坑,别人已经出坑了)本章详细介绍Java服务端课程内容,项目演示课程安排,高大上的架构从一台服务器演变到高性能.高并发.高可用架构的过程,大型架构演进思想以及代码演进细节.(特别说明:本课程是项目实战中级课程,不会讲语法层面的内容,实战前需具备Java,SSM,Linux等基础)...1-1 课程导学1-2 课程学习与解决问题指南(最重要的一节课)1-3 大型Java项目架构演进解析 第2章 开发环境安装与配置讲

阿里云部署Java网站和微信开发调试心得技巧(上)

阿里云部署Java网站和微信开发调试心得技巧(上)本篇手记旨在帮助大家从0开始: 申请阿里云服务器 搭建出程序的执行环境 在服务器上发布并运行自己的web project 域名解析 微信测试号的申请与连接以获取微信用户信息全篇文章主要以如何去完成目标为主,因此会以流程的形式来展现,细节方面需要大家多多思考.其中文章的上集实现了1-4,文章的下集实现了5一.申请阿里云服务器(1)PC访问阿里云https://www.aliyun.com/,申请阿里云帐号(可以用您的支付宝帐号登录,因为支付宝帐号已

2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5月26日 实验密级:非密级 预习程度: 优良 实验时间: 2 Hours 仪器组次: 必修/选修: 必修 实验序号: 04 实验名称:Java面向对象程序设计Android开发 实验内容 1.Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)(EPUBI

[Java Web]2\Web开发中的一些架构

1.企业开发架构: 企业平台开发大量采用B/S开发模式,不管采用何种动态Web实现手段,其操作形式都是一样的,其核心操作的大部分都是围绕着数据库进行的.但是如果使用编程语言进行数据库开发,要涉及很多诸如事务.安全等操作问题,所以现在开发往往要通过中间件进行过渡,即,程序运行在中间件上,并通过中间件进行操作系统的操作,而具体一些相关的处理,如事务.安全等完全由中间件来负责,这样程序员只要完成具体的功能开发即可. 2.Java EE架构: Java EE 是在 Java SE 的基础上构建的,.NE

Java微信公众平台开发模式+自定义按钮源码

首先,想用开放模式需要先成为开发者.成为开发者有两种写法. 一是:通过jsp页面,用out.print("echostr")//SHA1加密的字符串: 二是:通过Servlet.doGet返回exhostr,给微信平台. 这里我只写第二种方式的请求(这里的请求是以get方式请求),代码如下: import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.ut

&nbsp; &nbsp; JAVA SCRIPT SLIDESHOW 嵌入式开发的 VOID 运行链接开发

运行程序正在开始 简单地说,从不同的创建中来通过运行代码的原始去进行识别,应用代码编写如下: 嵌入式输入一段代码: 这段代码是从线路视频中去探访:<div id="anvsoftJavaScriptSlideshow" style="width: 650px; height: 370px; position: relative;"> <script src="anvsoftJavaScriptSlideshow-1.0.0.min.js?

使用Spring Boot来加速Java web项目的开发

使用Spring Boot来加速Java web项目的开发 我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用gradle来构建的话基本也一样)然后新建Spring相关的xml文件,而且往往那些xml文件还不会少.然后继续使用tomcat或者jetty作为容器来运行这个工程.基本上每次创建一个新的项目都是这么一个流程,而我们有时候仅仅想快速的创建一

[Java Web] 1\Web开发初识——一大堆历史和技术名词

LZ前言 LZ最近发现网络真是个神奇的东西,以前做的好玩的只能自娱自乐(或者说顾影自怜),现在只要发一个帖子,写一个博客,很快能引来一大群小伙伴的围观(有时候还能遇见几个大牛给个战略性的指导)...LZ本来是搞硬件的:从CPU的制造(VHDL).数电.模电再到计算机组成原理.汇编.接口技术,底层的东西算是走马观花地懂了点皮毛,正好大一的时候又了解一点计算机的编程知识(当时第一次用C++Build写出来个Hollo World那个欣喜呀~后来又从win32学到MFC再到C#,嘿嘿,基本上还是皮毛吧

【JAVA】使用Java SPI ServiceLoader进行Java应用插件模块化开发

背景:在进行业务定制时需要考虑不同接口的服务实现,每个局点所要求的接口大体都不一致,要求接口服务能够插件化方式提供: 方案分析: 1)采用OSGI框架进行开发,但是考虑到OSGI的框架太重,需要引入的东西比较多,放弃了该方案: 2)采用Java class loader动态加载外部jar机制,动态加载定制的接口服务类,这种方式实现比较复杂,需要完成指定接口服务类的文件加载,同时需要能查找到所有接口服务类,作为备选方案: 3)使用java service provider interface(SP