`
javabrother
  • 浏览: 18217 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

开发中的困惑!

阅读更多

 来到这家公司已经快三月了,有点不是很习惯,就是喜欢在sql中写逻辑,在sql中写逻辑是要少些很多的代码,听同事他看见在3000多行的sql,完全没有oop,听着就晕!我sql比较弱哦。

  不知道前辈们怎么看的。谢谢!

分享到:
评论
11 楼 坏孩子 2010-07-25  
<div class="quote_title">mercyblitz 写道</div>
<div class="quote_div">
<div class="quote_title">javabrother 写道</div>
<div class="quote_div">
<p> 来到这家公司已经快三月了,有点不是很习惯,就是喜欢在sql中写逻辑,在sql中写逻辑是要少些很多的代码,听同事他看见在3000多行的sql,完全没有oop,听着就晕!我sql比较弱哦。</p>
<p>  不知道前辈们怎么看的。谢谢!</p>
</div>
<p> </p>
<p>关键点还是在需求,如果需要在大规模并发访问数据的情况下,尽量传输和返回数据小,同时保证在数据库那端处理时间要小。对于复杂的SQL, 我的建议是简化SQL,把一次SQL语句拆分为几次来做。好处有:</p>
<p>1.SQL属于解释性的语言,关系型数据库解释时间可能比较长。</p>
<p>2.关系型数据一般地使用文件系统,在并发中,I/O瓶颈容易发生。</p>
<p>3.简短的SQL,更好地预编译和缓存结果(如果数据库支持的话)。</p>
<p>4.粒度更小的SQL,易于理解和维护。同时,提高重用性和扩张性,并且有利于SQL迁移(越短的SQL,越接近于标准)。</p>
<p>5.简短的SQL,有利于发挥编程语言性能和语义,弥补RMDB的不足。</p>
</div>
<p> </p>
<p>1. 用预编译</p>
<p>2. 生产环境一般都很牛逼,而且有专职dba调优</p>
<p>3. 更好的预编译,哪里来的结论?除非碰到数据库的bug;简短的sql能更好的缓存结果,你了解数据库么,读读oracle的文档再来吧</p>
<p>4. 迁移sql?你说的是迁移数据库?从来没有考虑过,除非oracle倒闭了</p>
<p>5. 据我所知,有不少公司正考虑将代码迁移到存储过程中。</p>
10 楼 glamey 2010-07-25  
现在在公司里边如果存储过程写的牛逼的话,那薪水是大大的啊
9 楼 javabrother 2010-07-25  
firehoo 写道
那位写3000多行sql的兄弟如果跳槽了,让一个新来的改他的这段代码,那个新来的会不会觉得郁闷?

这个sql是台湾的一个同事写的, 它们写的sql 先把sql语法和关键字写出来,在填条件。这个方法我受教了,以前自己写的sql是 从左到右的写,现在看起来很傻,花的时间review比较多。现在的这种写法虽然看起来很傻,但是写出来的东西很规范的,一看就懂,sql关键字做一行,查询的每个字段做一行,每个条件做一行。往往不会出错!
8 楼 oakeye 2010-07-25  
beeke 写道
这个做法也很正常。我们就有这样的项目:

它一个银行的核心系统
几千万一台的数据库服务器足够强大
开发人员以前大多熟悉C语言,精通SQL调优,不怎么熟悉OO,并且他们为此项目服务了很多年
项目永远也不用考虑到移植


我参与做过一个海外项目,一般程序员甚至连普通的SQL都不用,哪怕是简单的插入数据,都有专人写存储过程。

另外,比起tuxedo这类老资格的中间件,J2EE远不如吹嘘的稳定和快速。把压力推向数据库,使得系统更加稳定,调优也更加容易

核心都是这样  不用吵什么java还是c  全是存储过程。。。
7 楼 redK 2010-07-25  
firehoo 写道
那位写3000多行sql的兄弟如果跳槽了,让一个新来的改他的这段代码,那个新来的会不会觉得郁闷?

花得几天慢慢看,还是能看出点冬瓜豆腐来的。。。。
6 楼 beeke 2010-07-25  
这个做法也很正常。我们就有这样的项目:

它一个银行的核心系统
几千万一台的数据库服务器足够强大
开发人员以前大多熟悉C语言,精通SQL调优,不怎么熟悉OO,并且他们为此项目服务了很多年
项目永远也不用考虑到移植


我参与做过一个海外项目,一般程序员甚至连普通的SQL都不用,哪怕是简单的插入数据,都有专人写存储过程。

另外,比起tuxedo这类老资格的中间件,J2EE远不如吹嘘的稳定和快速。把压力推向数据库,使得系统更加稳定,调优也更加容易
5 楼 firehoo 2010-07-25  
那位写3000多行sql的兄弟如果跳槽了,让一个新来的改他的这段代码,那个新来的会不会觉得郁闷?
4 楼 mercyblitz 2010-07-24  
<div class="quote_title">javabrother 写道</div>
<div class="quote_div">
<p> 来到这家公司已经快三月了,有点不是很习惯,就是喜欢在sql中写逻辑,在sql中写逻辑是要少些很多的代码,听同事他看见在3000多行的sql,完全没有oop,听着就晕!我sql比较弱哦。</p>
<p>  不知道前辈们怎么看的。谢谢!</p>
</div>
<p> </p>
<p>关键点还是在需求,如果需要在大规模并发访问数据的情况下,尽量传输和返回数据小,同时保证在数据库那端处理时间要小。对于复杂的SQL, 我的建议是简化SQL,把一次SQL语句拆分为几次来做。好处有:</p>
<p>1.SQL属于解释性的语言,关系型数据库解释时间可能比较长。</p>
<p>2.关系型数据一般地使用文件系统,在并发中,I/O瓶颈容易发生。</p>
<p>3.简短的SQL,更好地预编译和缓存结果(如果数据库支持的话)。</p>
<p>4.粒度更小的SQL,易于理解和维护。同时,提高重用性和扩张性,并且有利于SQL迁移(越短的SQL,越接近于标准)。</p>
<p>5.简短的SQL,有利于发挥编程语言性能和语义,弥补RMDB的不足。</p>
3 楼 beneo 2010-07-24  
我不知道这种做法是不是主流,但是听起来很有意思。。

在网上面封装说不定就是一个hibernate了。。
2 楼 Kisses99 2010-07-24  
这没什么不好啊,如果sql优化的好,效率各方面都很好啊。
OOP又不是宝典,必须要遵守的,一切面向应用。
1 楼 jerryfeng 2010-07-23  
Welcome to the real world. It sucks ~

相关推荐

    用python计算lda语言模型的困惑度并作图

    困惑度是一种常用的评估语言模型好坏的指标,通常在自然语言处理中使用。该资源提供了详细的Python代码,用于计算LDA语言模型的困惑度,并将其与不同主题数量的模型进行比较。 知识点一:困惑度的定义和计算 困惑...

    物业管理中的四个困惑.docx

    【物业管理中的四个困惑】 物业管理作为现代城市生活的重要组成部分,它涉及到居民日常生活中的诸多方面,包括设施维护、环境管理、安全防护等。随着社会的发展,物业管理行业逐渐规范化,服务质量不断提升,但也...

    困惑的浪漫 WINHEX高级专题

    《困惑的浪漫》是高志鹏先生的一部经典著作,主要聚焦于WINHEX这款强大的十六进制编辑器的高级专题。这本书不仅深入探讨了WINHEX的基本功能,还涵盖了其在数据恢复、取证分析、硬盘修复等领域的高级应用,为读者提供...

    使用python开发前端.pptx

    本文将从 Python 在前端开发的实践、开发困惑、前端技术演进、单页面应用模型、前端框架等方面对 Python 在前端开发的技术点进行详细的解读。 一、Python 在前端开发的实践 Python 可以用来开发前端应用,例如使用...

    java开发接口帮助文档

    Java开发接口帮助文档是开发者在进行Java编程时的重要参考资料,它包含了JDK中的类库、接口、类与类之间的继承关系...掌握并善用这份文档,能够提高开发效率,减少编程过程中的困惑,从而提升整个项目的质量和可靠性。

    敏捷软件开发知识体系

    中国敏捷软件开发联盟通过采集和总结这些成功案例,旨在推动敏捷在国内企业中的深入理解和实践,同时解决国内企业在向敏捷转型过程中遇到的问题和困惑。通过定期的大会、研讨会、培训以及发布的专业资料,联盟正在...

    安卓开发基于Java开发的DLNA投屏项目源码(课程大作业).zip

    安卓开发基于Java开发的DLNA投屏项目源码(课程大作业).zip安卓开发基于Java开发的DLNA投屏项目源码(课程大作业).zip安卓开发基于Java开发的DLNA投屏项目源码(课程大作业).zip安卓开发基于Java开发的DLNA投屏项目源码...

    简单之美:软件开发实践者的思考

    本书力图做到传递经过组织的、可操作的软件开发经验,使软件开发领域的新手在知识(软件开发思想)积累过程中少走弯路,也使软件开发领域的老手可以对照自己的经验把可能的困惑降到最低。有一些有趣例子为那些有价值...

    在开发中经常用到的小图标

    在开发过程中,小图标起着至关重要的作用,它们不仅可以提升应用程序的美观度,还能帮助用户快速识别和理解功能。这些小图标通常是矢量图形,能够适应各种尺寸而不失真,确保在不同设备和分辨率上都能呈现出清晰的...

    C++技术和开发中遇到的问题总结

    本文总结了C++开发中的常用技术,并对开发中经常遇到的困惑问题给出了详细解答。涵盖了Visual C++开发工具与调试技巧的整理,包括如何在Release状态下进行调试、Release和Debug的区别、ASSERT和VERIFY的区别、...

    HTML5在游戏开发中的应用

    HTML5在游戏开发中的应用,不仅推动了网页游戏的发展,也极大地丰富了互联网上的互动体验。HTML5之所以能在游戏开发领域崭露头角,主要得益于其一系列强大的特性,包括Canvas、Audio/Video、WebSockets、WebWorkers...

    刘运新新课程高中数学教学中问题困惑分析与解决建议PPT学习教案.pptx

    【刘运新新课程高中数学教学中问题困惑分析与解决建议】 在高中数学新课程的实施过程中,教师和学生都面临着一系列的挑战和困惑。这些困惑主要体现在以下几个方面: 1. **新课程与教材体系的问题**: - **知识...

    阿里巴巴Java开发手册泰山版.pdf

    本手册聚焦于Java开发者在实际开发过程中可能遇到的问题和困惑,对Java编程中常见的规约、异常日志处理、单元测试、安全、数据库使用、工程结构、设计等方面做了细致的规定。 本手册的一个重要特点是其内容的系统性...

    深入理解Nginx:模块开发与架构解析.陶辉(带详细书签)

    这也成就了Nginx这方面的巨作——覆盖了Nginx的安装、配置、模块开发、架构解析和深度应用等各个方面,适合不同层次的读者,并能切实地帮助读者有效地解决Nginx应用中所碰到的困惑与难题。 —— 朱少民 同济大学...

    软件开发常用图标大全

    在软件开发过程中,图标起着至关重要的作用。它们不仅能够美化界面,还能够直观地向用户传达各种功能和状态信息。"软件开发常用图标大全"集合了大量的图标资源,旨在为开发者提供一个便捷的一站式解决方案,减少寻找...

    HTML5 在游戏开发中的应用

    ### HTML5 在游戏开发中的应用 #### 一、HTML5技术背景及发展历程 HTML5作为第五代超文本标记语言的标准,不仅在网页布局和结构上提供了更多灵活性,更重要的是引入了一系列新的API和技术,使得Web应用的功能更加...

    新课程高中数学教学中的问题困惑分析与解决建议PPT学习教案.pptx

    教师在课程资源开发中可能过于追求新颖,导致教材的地位被弱化,情境设置过于形式化,联系实际变得空洞,信息处理过于程式化。 教师角色的转换是一个重要的方面,但在实践中可能出现失衡。过度强调学生的自主性和...

Global site tag (gtag.js) - Google Analytics