因为这个问题, 今天我和所谓的技术总监大吵一场, 来者皆有分先说结果吧, 下班时候大吵完毕进入僵持状态
因为这个问题, 今天我和所谓的"技术总监"大吵一场, 来者皆有分
先说结果吧, 下班时候大吵完毕进入僵持状态的时候, 他丢下一句话"下星期这项目从头开始,不要用hibernate,直接用jdbc",
我也没跟他客气, 直接来了句"好啊"(语气很不屑), 然后打卡下班. (要知道这项目的功能差不多完全实现了, 就因为他调用我的方法觉得别扭)
先介绍下公司吧, 公司规模很小, 总人数不到20人, 技术部就3人(包括"技术总监", 我(一年多开发经验) , 刚来两月的应届小弟).
最近开发一个订单系统C, 要去商城系统A(这个系统A是我们自己的商城)获取订单保存在订单系统C的数据库(当然还有些更新操作), 还要去某大型网上商城系统B(这个系统B是别人的)上去获取订单保存在订单系统C的数据库. 然后从C拿出订单, 去查询该订单的物流状态.
项目中用到的技术是(hibernate + spring), "技术总监"负责和A交互, 我负责和B交互, 应届小弟负责查询这些订单的物流状态
分工完毕后, 大家开始做开发(其中经历了从web项目修改为普通java项目的过程, 最近又喊着要做页面(又成web项目了)), 做得还算顺畅吧, 突然"技术总监"要我给他提供一个方法, 将他从A获得的订单保存到C的数据库的方法(我当时就呆掉了, 你自己从A取出来东西保存为什么要找我要方法保存呢, 你自己直接跟C的数据库打交道好了) 我的理解是大家都分工好了, 你写个业务方法(业务r层)专门拿A里面的订单, 然后自己写个保存的方法(dao层)保存到C不就完了, 大家都一样,自己写业务层, 自己写DAO层(不过我直接就把dao层揉到业务层了, 因为用了hibernate, dao层实在没什么可写的). 可他死活就是不同意(说这些方法都一样,他没必要重复体力劳动), 没办法, 我专门在我的业务层(接口)里面添加他需要操作数据库的方法(比如保存订单)给他提供服务.
但是我告诉他, 现在暂时为了他编译通过,用的时候先读取spring的配置文件, 得到这个业务对象, 代码如下:
Java code ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); // 我和B打交道写的业务接口, 为了"总监"使用方便, 在该接口我写了很多他需要的方法 OrderManager orderManager = (OrderManager)ctx.getBean("orderManager");
当天大家小吵一番, 我直接问他为什么他的模块要我来实现和db的交互, 他最后直接说这是他的需求, 弄成这样虽然难调一些
好在他能编译通过, 最后和平收场.
最近, 大家功能都实现完毕了, 打算代码整合到一起,(对不起,CVS,SVN统统没有,开发的时候为了编译成功大家相互copy源码), 他写了个专门做任务调度的类, 隔段时间就自动调用 他的跟A交互的业务方法, 我的跟B交互业务方法, 然后应届小弟的代码.
由于SessionFactory是重量级的, 大多数项目有一个这玩意即可, 那么执行一次即可 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
然后该获取和谁打交道的业务方法就去获取相应的bean, 我的想法读取完spring配置文件后的代码如下:
Java code // 我和B的交互 OrderManager orderManager = (OrderManager)ctx.getBean("orderManager"); orderManager.service(); //技术总监的和A交互业务方法 ShopManager shopManager = (ShopManager)ctx.getBean("shopManager"); shopManager.service(orderManager); // 为了满足技术总监的需求, 我不得不给他这个orderManager // 应届小弟的 FlowManager flowManager = (FlowManager)ctx.getBean("orderManager"); flowManager.service();
问题来了, 他不会hibernate和spring(至于为什么用框架是刚开始在做需求阶段的时候他问我打算怎么办, 我直接说三大框架, 他也没说什么) 所以, 他的shopmanager直接new即可,当然他不用new, 因为他把他里面的业务方法都搞成static的了
于是, 我认为他通过ShopManager.service(orderManager)调用业务即可了.
这时候他发现, 我和物流小弟的manager都是通过getBean来获取(小弟在我的带领下用框架用的很欢快), 然后才调用业务方法, 他感觉很不爽, 问我为什么不把orderManager里的方法搞成静态的, 这样他就可以直接通过类名.方法名调用我的方法了, 各位兄弟, 我还能说些什么呢, 我无语. 然后他责问 应届小弟, 你查物流后修改订单状态与数据库交互不需要调用 orderManager的方法吗? 应届小弟说" 我自己写的业务方法, 我自己写操纵数据库方法啊"
总监怒了, "为什么我们三个人不统一呢, orderManager里有专门操纵数据库的方法是可以复用的"
这时候, 我想起了一个笑话, 大家开车都在靠右走, 他一个人从对面开车过来(他靠左,和我们在同一边), 发现大家都在朝他的相对方向开车, 他大呼, 你们为什么要逆行?
现在他的问题是, 他 和 应届小弟, 我 写的业务方法, 都调用同一个专门操纵数据库的类里的方法进行DB的交互
我以往的经验是谁写的业务方法, 谁再去调用自己写的 和数据库操纵的方法(他认为这样极不合理)
最后导致了他丢下了这样的话, 不要再用hibernate了, 用jdbc, 这和jdbc,hibernate有关系吗? "技术总监"???!!!
[解决办法]这个帖子我怎么记得前段时间看到过。。。。
[解决办法]晕死,怎么非要用,用类名.方法名去调用呢,用对象调用不是一样嘛,这叫固执
不过非要用类名.方法名调用也是可以的,但要把hibernate转为jdbc这个就不必了吧,有N多方法可以让他实现这种调用。少见的技术总监。楼主挺悲剧的。
[解决办法]三个模块都要访问数据库,把数据库访问的代码集中起来避免重复,这个想法并不差哦。不过非要用静态方法调用,非要用jdbc好像站不住脚,除非项目有特殊要求。
------解决方案--------------------
我在远方祝福楼主, 挺住
[解决办法]楼主应该考虑换一家公司了。
[解决办法]用了spring还自己去new被注入的对象,这不是乱套吗?
晕死,怎么非要用,用类名.方法名去调用呢 固执
少见的技术总监。楼主挺悲剧的。
楼主应该换公司了
[解决办法]接个分,顺便说下,楼主可以换家公司,让技术总监自己搞定它
[解决办法]淡定
[解决办法]你们技术总监不理解面向对象的含义....
[解决办法]这也是技术总监
技术太监吧?
[解决办法]你的技术总监 理论和实践都还没有成熟
[解决办法]怎么当上技术总监的。。。
[解决办法]围观。
[解决办法]其实我觉得现在各大开源的框架都应用的太泛滥成灾了,无论什么系统都喜欢用SSH,我认为在架构设计时要考虑系统的业务量并发量以及开发的资源等因素,小的系统其实只需一个STRUTS就行了,数据库直接用JDBC。这样就只需配置一个STRUTS-CONFIG.XML就行了,开发起来又方便又快速。
[解决办法]悲剧!
[解决办法][解决办法]鸡巴毛技术总监啊。
[解决办法]还请教下, 如果这个项目没有web容器, 用不用最后执行下面的语句
ClassPathXmlApplicationContext context = (ClassPathXmlApplicationContext)ctx;
context.destroy();
如果用了web容器, 那还要这样吗, 用了web容器(比如tomcat)启动就自动加载这些配置文件了(当然web.xml里得配置)
用来web容器 我们都需要通过控制器来调用业务 而控制器则是交给Spring去管理 所以就不需要这样写了
至于你跟你老大的冲突 你老大人品是有点那啥
1.事情做到一半突然说出个很关键的决定 决定由你来调用数据库C的接口(有趣的是你一开始居然也没有任何疑问 相同的情况一般都是先考虑一个人写一个公共的方法嘛)
2.用神马东西人家听你的意见 如果还有下次我建议你听他的意见 出错了看看谁负责
3.这TM神马公司。。
[解决办法][解决办法]接分。。
[解决办法]是啊,既然是web项目为什么还要读取配置文件呢。。。有web.xml帮你加载,你注入就行了呗
[解决办法]佩服
-----
[解决办法]工作了有这么多问题啊,看来学习还要多多努力....祝楼主当技术总监,加油加油
[解决办法]帮顶 接分 了..........
[解决办法]呃,路过,同样建议LZ换公司
[解决办法]接点分,,,呵呵
[解决办法]你给别人打工
叫你怎么做就怎么做
想有自己的想法
拼搏吧
拥有一家属于自己的公司
[解决办法]没准经过这次事件之后,你成为技术总监了!
[解决办法]楼主撤吧
[解决办法]对java不太熟,但是楼主好像沟通能力有问题,这种情况下你只能按照别人的要求来做,不过你可以把总监的话记录下来,然后跟上级打小报告~~~
[解决办法]加油。。
------解决方案--------------------
不得不说的是,你和你的技术总监在开发流程上理解都有问题
[解决办法][解决办法]跟项目经理谈谈。
[解决办法]新人路过,,
[解决办法]晕。你们连简单的概要设计都不做的吗?如果做了,就知道哪些要公用了。最后合的时候才想起要公用,难免不出问题。
不过你们那个头也太。。。。。。楼主你就算按它要求做了以后也会找你茬的。。。。。。
闪人吧。。。。。。
[解决办法]你们那技术总监真的很不一般啊!
lz,建议你早点闪人吧!
有能力,怕什么!
[解决办法]所谓的 SSH 万能论?
[解决办法]路过~~~~~~~~~~~
[解决办法][解决办法]不做网站的,来围观
[解决办法]悲剧了.
其实jdbc也不错.
[解决办法]不做java好多年,SSH,量产软件的捷径,点解不用呢
难怪给技术总监加了一堆引号,的确,单纯从技术角度感觉该兄台不够胜任。不过,这还算好的了,起码也是你的头,要知道这年头,做头了还做事的不多啊。我遇到的更杯具的事情是,就因为比你早来了那么几个月,结果人捷足先登给当个头,啥事不干一件,就只分配活给你。做好了你的本分,好处人领走;做不好黑锅你来背。相比之下,LZ的境遇起码好几倍呢
[解决办法][解决办法]…………
[解决办法]luguo
[解决办法]你们技术太监是靠关系升官的吧~~~
[解决办法]楼主和我一样啊,我们那个也是这个掉样儿!而且还不会,整天在哪里制造噪音!
[解决办法]淡定!!谁叫俺不是老大~~
[解决办法]又学了不少东西,包括和上司吵架!
[解决办法]看了半天没明白意思 悲剧
[解决办法]我还没毕业,看到问题好多。。。
------
我来拿分。。。
[解决办法][解决办法]都快做好的项目要再从头改是很恶心,不过吵架不是目的,下周沟通下解决的比较好
[解决办法]人在屋檐下, 不能不低头。
[解决办法]复杂;
[解决办法]这个, 实在不知道说啥好, 静态方法首先测试就不好测试, 你们总监是不是不太用OO方式考虑问题, 还是原来是做其他程序开发的, 刚转到java下面?
[解决办法]跟上司吵架就是在学东西
哈哈、、、
[解决办法]不管什么方法都加载到内存里,这个系统的效率和牛拉车差不多了吧,呵呵,为什么公用的东西事先不说好呢,没有做需求分析吗,连svn什么的都没有
------解决方案--------------------
啊 你的问题太难了啊 我现在是一个菜鸟
[解决办法]技术总监不会关心技术问题
[解决办法]人家是领导~~没话说了
[解决办法]接分了啊
[解决办法]如果您是总监,您会在公开场合接受别人指责吗?
[解决办法]楼主你得忍住啊,人家毕竟是你“领导”,
再几个月就过年了,拿了年终奖再闪吧。
金三银十,是个好时候。
走的时候记得给他一句话:“你他妈的连SSH都不会还技术总监!?”。
PS:不过现在的项目你还是用他的话来做,他是总监他得说了算,出了岔子也跟你没关系。
[解决办法]up...
[解决办法]刚接触SSH的飘过
[解决办法]淡定,路过看看
[解决办法]干嘛非得用 类名.方法名调用,用对象调用也行的啊,总监技术不到家啊,楼主是秀才遇见兵——有理说不清,呵呵
[解决办法]有点意思哈
[解决办法]多忍忍会好点。。
[解决办法]呵呵,有同感啊!
[解决办法]每天回帖即可获得10分可用分!
[解决办法]顶一个,要点分!
[解决办法]全静态方法可行么?
[解决办法]刚学会ssh的路过,ssh真把工作量降低了,尤其hibernate把dao层给封装的几乎你不用写多少代码了,话说有得必有失哈,效率应该耍不过servlet+ jdbc,估计lz也是为了减少工作量才用的ssh
[解决办法]CSS code 小公司里面真的很郁闷的。这样太累了 蛋疼
[解决办法]
好好谈谈吧,毕竟还得干嘛
[解决办法]
认命吧,技术总监最大。你是争不过他的,错就错在你忘记了团队合作这东西,既然你们是一个团队了,那么你就该知道多讨论,多交流。你不说问题,我不说问题,最终只会是你的问题。因为你比他小。就这么简单。
我就顶过项目经理,结果自己还得去道歉~。一有问题项目经理就跑来骂人,而且又看不起我这个半新人。问题我早说了,可没人愿意听和关注,项目经理拿我说的话当扰乱会议~最后连工作交流会都不让我参加了,我就直接不理了。呵呵。
[解决办法]
看完了贴 没什么要说的 直接要分吧
[解决办法]
技术总监说到底还是技术活,他没什么背景的话就取而代之吧-x-b
[解决办法]
天真的人真多 , 你 技术牛 B 就能当上技术总监 ? 一个公司选择自己公司的关键职位人选 ,会从多方面考虑的 ,比如 : 为人处事 , 领导才能 。。。
[解决办法]
都是楼主的片面之词,最好把那你所谓的技术总监来发表言论,大家讨论讨论!单听你所说,让广大CSDN的同志鸡动不已!!不过据我所知,技术总监要懂编程吗?
[解决办法]
我也看过
[解决办法]
用其来感觉好就可以把!!!!!!!!!!!!!!!!!!!!!
[解决办法]
做软件是团队工作,如果团队里的人意见不统一就很难做出好软件来,程序员都觉得自己不错,都想按照自己
的方式来,不服从命令的结果就可想而知了。
程序员就想当于部队里的技术兵种一样,既要求你有超过常人的技术,又要求你服从命令。
对于一个在你级别之上的人,你首先是要服从命令。如果有意见,把你的意见总结一下,
利弊给给你上级用建议的口气说明白。因为上一级的人不一定要比你强,不一定要知道的很多,就像
当指导员的人,不一定要单兵作战能力比你强一样。
如果你不能把他说服,那你就只好从命。因为说服不了他证明你对整个系统以及使用的技术还不是很了解。
如果真是技术总监的人品有问题,那建议楼主跟他上一级直接建议,当然他上一级更啥也不懂,如果你不
能把一个什么技术都不懂的人说服,你也不要跟他上一级的人建议了。
说了这么多,只是想告诉楼主,谴责别人的时候先要看清自己。如果你没有足够强的能力,你就要遵守上一级
的命令,如果你有足够强的能力他是压不住你的。
[解决办法]
决斗一下吧,输的离开。
[解决办法]
[解决办法]
Hibernate真难用。
还是JDBC用着舒服。
[解决办法]
团队协作 问题 呀 。。。
[解决办法]
发帖给10分 看看情况,最好 概要设计还是要那么一个比较好
[解决办法]
接分
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分