`
hn_liuyi
  • 浏览: 32461 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

追求完美程序的我

阅读更多
  追求程序性能的最优化,这不是我自己的要求,是软件上架之后,用户的反应,管理2K台设备的软件,把2K台设备加载到内存中大量消耗用户PC资源。作为软件研发人员,每个人员都有自己编程的诡异风格,前期没有规划好的软件系统,现在让我整体进行性能优化,着实让我很头疼。稍微看点程序就能总结出以下问题:
1.变量名的命名
作为软件开发编程的常识:变量名不能自动生成,好多人还是list1,list2...的使用,一个个的变量名都帮你修改过来的话,啥时候能改完啊,操作数据库的getString(1),getString(2)这样的取值方式再放入上面诡异名称的变量里面,让人怎么理解这块代码。
2.静态变量和全局变量的使用 
  静态变量和全局变量在软件中有他们特有的优势,静态变量赋值之后不变的特性和"类名.变量名"的直接使用,确实能给编程带来方便,但静态变量在不需要的时候也一定要处理掉,否则内存中一直被占用,例如2K台设备数据都放在那里,每打开一个界面都多出一份,再好的PC,资源也能被占完啊。全局变量,不知道为什么喜欢使用全局变量,一个界面还没有初始化,就建了数十个全局变量,不规则的命名+不规则的局部变量,变量名重复都不知道,动不动出现莫名其妙的问题,还不知道错在哪里。
3.诡异的设计理念 
  这个设计理念,是受领导的思路影响的,软件开发初期领导提出的:第一次打开该界面把数据都加载上来,下次打开该界面就能变的很快了。这样就造成了,第一次打开界面是非常的慢,是让人无法忍受的慢。即使以后打开很快,我感觉这也是常说的瓶颈问题吧?但是真正的瓶颈问题是比这要高级的性能优化问题,这能算吗?这样的理念引导出了静态变量和全局变量的大量使用。
4.单纯的模仿心态
  使用的是Twaver组件,模仿Twaver Demo,我承认前期的模仿有助于快速的熟悉组件,但如果是单纯的模仿,不分辨优势和缺陷都一味的模仿的话,是自己的懒惰,举个例子:查询的时候有个进度条,本来查询的数据量都够大的,查询性能数据和端口流量什么的要上几十万条,十秒以内是最好的体现时间,偏偏在很难满足的情况下,在查询结束的情况下还要让线程 Thread.sleep(1000); 返回来问他们为什么这1秒不去掉,说不知道啊,是为了“查询成功”那几个字显示出来吧。说的没错,Demo里面是这样,加几十条假数据,最后暂停1秒为了显示出来这几个字。
5.Twaver组件的使用
  组件好使只能使自己变的更傻瓜,傻瓜式的去模仿使用,永远不知道该组件怎么才能达到性能的最优化。
6.诡异的查询数据库方式
  这个问题应该总结为:能在内存中拿到的数据,不要去数据库中查询。在一个端口的对象上点击查询该端口的流量信息,直接从流量数据表中拿到自己想要的数据就可以了,端口的名称,对应的上层设备,厂商,设备分类这些信息都在内存中呢,不用在查询流量数据的时候关联那么多表进行查询了。
7.不查数据库的危害
  上面刚说过在内存中能得到的信息,不要去数据库中查询,为了提高软件反应速度。这样做的过火了也不是好事情。本地有个xml文件保存的信息是为了生成一个Tree组件,Tree组件上含有省、市,市区、设备分类、设备厂商、设备型号、2K左右的设备信息。可以不查数据库就把这些信息从本地加载到内存中来使用的。但是要说是2k左右的设备信息这样操作我就不说什么了,怎么也不至于一个界面上有市的下拉框,市区的下拉框、设备厂商的下拉框、设备型号的下拉框,为了填充这4个下拉框,每次都初始化一次Tree组件,再对Tree组件的数据进行过滤,4个下拉框的生成,从xml里面加载了4次数据到内存。打开几个界面,卡死用户的PC
8.变量的最小作用域规则
  很多个地方,声明一个变量,该变量的取值本来是可以轻松拿到的,何必绕那么一大圈干什么,把变量传的到处都是,可以说是乱窜。严重违背了高内聚低耦合。各个组件不是独立的,往组件上添加什么属性都是和别的组件进行关联的。搞的修改一个组件的问题,得把好多类进行维护,看见都头疼。
软件优化还要继续,不知下面还会遇到什么诡异的程序,自己看到的瑕疵总想让它消失,这么多的问题如何修改,很让人头疼啊![/color][color=indigo][/size][size=x-large][size=xx-large][/size]
1
1
分享到:
评论

相关推荐

    c++完美演绎程序

    “C++完美演绎程序”是一个包含了大约两百个精心设计的小程序的集合,这些程序不仅是代码的展示,更是C++强大功能和灵活性的完美演绎。它允许学习者通过直接复制、粘贴这些代码到自己的开发环境中运行和调试,从而...

    非常漂亮的爱情表白小程序

    小程序中的每一个细节都经过精心打磨,从色彩搭配到交互逻辑,无一不体现出对浪漫的追求。同时,它还提供了多种告白模板,可以根据不同的情境和个性需求进行选择,使表白过程既温馨又充满惊喜。 【标签】:“漂亮”...

    Java web 程序开发体系结构PPT

    我们都想写出完美的代码,但世界上好像从来都没有过完美的代码,因为代码牵涉的内容很复杂,有程序设计语言、运行环境、数据结构以及算法等等,而开发者往往很难全面精通,再者写代码本来也就是一个不断追求完美的...

    祝贺小程序

    小程序的便捷性是其一大特点,而祝贺小程序则将这一特点与用户的情感需求完美结合,为情侣们提供了一个表达爱意的轻量级平台。 这个小程序到底有什么魔力,能让描述者给予“真的蛮不错的”高度评价呢?首先,祝贺小...

    完美卸载完美卸载绿色版

    不论是对于需要进行大量软件管理的用户,还是追求系统稳定和高效运行的电脑高手来说,“完美卸载完美卸载绿色版”都提供了一个全面而高效的解决方案。在使用2009版本的完美卸载时,用户可以期待获得稳定、现代化的...

    清明_跨程序辅助类库 v8.1最新版

    在当今快速发展的移动应用开发领域,为Android平台开发优质的游戏和应用程序已经成为开发者们的主要追求之一。然而,为了满足不断变化的用户需求以及提高产品竞争力,开发者必须面对各种技术挑战。对于那些追求效率...

    南方专业起名程序7.3

    《南方专业起名程序7.3》的出现,正是基于这样的文化背景,将古老的姓名学与现代科技完美结合,为追求吉祥和和谐生活的人们提供了一种科学化、系统化的命名服务。 首先,让我们了解该软件的核心功能——“三才数...

    2017最新游戏支付平台程序

    无论是对于追求高效支付体验的游戏玩家,还是希望快速接入支付系统的开发者来说,都是一个值得信赖的选择。随着技术的不断进步和市场需求的变化,此类支付平台也将持续优化升级,更好地服务于广大用户。

    摩天轮-一个很刺激的小程序

    小程序不仅好玩,而且惊险,意味着它能够吸引追求新奇体验和刺激的年轻用户。在操作过程中,用户可能会遇到一系列挑战,例如快速反应的游戏环节,或是需要动脑筋才能解决的难题。这些游戏设计不仅给用户带来快乐,还...

    算法经典教程(不是经典我不发)(适合最求程序完美的人)

    ### 算法复杂度分析:理解程序性能的关键 在计算机科学中,算法的效率是评价算法优劣的重要标准之一,而算法复杂度分析正是衡量算法效率的主要手段。...在追求程序完美的过程中,掌握并灵活运用这些概念将大有裨益。

    国际程序设计大赛的作品欣赏

    这些竞赛具有极高的专业性和严格的评审标准,能够获奖的作品,无一例外都是技术与艺术的完美结合,代表着当前程序设计领域的最高水平。 压缩包中的文件名可能经过编码或含有非标准字符,这种做法或许是为了保护作品...

    电脑鼠走迷宫源程序(回溯法,和栈)

    用回溯法和栈实现迷宫程序,完美的C++程序,抱你满意,谢谢访问,您的满意,是我们永远追求的目标

    2011年中秋许愿祝福程序 v1.0 php开源版.rar

    该程序采用简洁的div css界面,完美融合了现代网页设计与传统文化元素,呈现出一个既现代又不失节日氛围的视觉效果。用户在操作界面上不会感到复杂和繁琐,能够轻松完成许愿的全过程。这种设计风格不仅满足了现代人...

    完美记事本 通过5人一月的奋战才做出来 有提醒功能 基于单文档的VC程序

    首先,“完美记事本”并非简单的文字编辑器,它的“完美”体现在对用户体验的极致追求。团队在设计时,不仅考虑了基本的文字录入、编辑功能,更添加了实用的提醒功能,使得这款记事本软件不仅仅是一个记录工具,还能...

    国际程序设计大赛作品

    在这个作品中,“fire”可能代表项目的激情与活力,而“第七天堂”可能象征着开发者追求的完美境界,64.0 KB则表示这个程序的大小,大约64千字节,这是一个相对较小的体积,说明开发者在代码优化上做得相当出色,...

    watcher:追求完美的文件系统观察程序,不具有本机依赖项,​​并且可选的重命名检测支持

    追求完美的文件系统观察程序,不具有本机依赖项,​​并且不提供可选的重命名检测支持。 特征 可靠:此库旨在处理与文件系统打交道时可能出现的所有问题,包括一些无法解决的最流行的选择,例如EMFILE错误。 重命名...

    Bblean(完美汉化版)

    Bblean是一款高度自定义的桌面增强工具,专为追求个性化和高效操作的用户设计。它的完美汉化版意味着用户无需面对语言障碍,能够更加流畅地理解和使用软件的各项功能。这次的版本不仅实现了全面的语言本地化,还修复...

    XW-coffe.rar_coffe_咖啡_咖啡机程序_松翰_松翰汇编

    在这个咖啡机程序中,开发者可能使用了定时器来控制冲泡时间,保证每一滴咖啡的完美萃取;利用中断系统响应按键输入,使用户交互更加及时;可能还设计了完善的错误处理机制,以应对可能出现的异常情况,确保咖啡机的...

    100任务,多任务定时提醒小程序

    综合来看,“100任务,多任务定时提醒小程序”是一款将多任务管理与定时提醒完美结合的工具。它的功能不限于游戏,而是扩展到了生活和工作的各个方面,满足了现代人快节奏、多任务的需要。无论是繁忙的上班族,还是...

Global site tag (gtag.js) - Google Analytics