《当程序员的那些狗日日子》(十三)重组程序

2024-03-14 11:18

本文主要是介绍《当程序员的那些狗日日子》(十三)重组程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

几个星期后,我已将网站论坛系统的细节问题处理好,网站论坛系统也终于可以摆上线了。看到我自己竟然也能做出一个相对完整的论坛系统,我心里感到很欣慰和兴奋,并有几分成就感。虽然这个网站论坛系统放到整个互联网上是那么微不足道,但毕竟它是我几个月来的心血,或者说从我刚开始学习网站开发技术时起,我就倾注了很大的心血,这是我付出很大心血后的“结晶”,所以显得弥足珍贵。

盈回家过完春节后,她的家人希望她留在家中的县城工作,而且她不久后就在县城的一个公益性机构找到了一份差事,所以她就留了下来。但是我和盈仍保持着联系,除了平时在QQ上聊天外,有时我也会给她打电话。电话中盈总是很乐意跟我说她最新的情况,说她工作中的事情,说她的烦恼,言谈间听得出来她并不喜欢目前的工作,她还想再到北京来,但是她家人又希望她留在县城工作,所以她内心很矛盾。

盈的老家是在河北承德下面的一个县,到北京来很方便,如果此时我让她辞掉那份工作而再到北京来,我想她一定会辞掉那份工作的。但我并没有让她辞掉那份工作,而只是在QQ上或电话中开导她,给她解闷,我更多的还是把她当成一个妹妹来看待。所以后来盈就继续做着那份工作,一直到后来我也不知道的某个时间。

交由万网公司去做的网页改版的工作仍在进行中,虽然他们的设计人员已设计出了网站首页效果图的好几个版本,但都不能让小李总觉得满意,究其原因,一是因为他们的设计人员也并非是什么高手,难胜任务;二是因为他们的设计人员毕竟对我们公司的票务业务需求不了解,不能真正理解网页上要实现的功能效果和布局。因此网页改版的工作仍不能在短时间内完成,我们只好继续等待。

由此也可见,虽然万网公司规模较大,但他们的设计人员也无非是像我或小京这样的职场之人,其水平难免有高有低,所以万网公司的设计实力也不见得一定就强。

网站论坛系统摆上线后,虽然偶尔会遇到一些小Bug需要修正,但问题毕竟不多,所以我上班时反而出现了难得的空闲状态。这正好给了我一个难得的时机,我可以利用这些空闲时间去重新组织公司网站类库项目的程序代码,以便在网页改版工作完成后需修改公司网站的程序时,我可以进行改动。

借助Reflector这个反编译工具,我又将由公司网站的类库项目所编译出来的DLL文件进行反编译,然后再阅读这些反编译出来的程序代码。我给自己定的要求就是,一定要将这些程序代码读懂后,才将其放到之前已建立起来的新类库项目中去重新组织起来。除了阅读这些反编译出来的程序代码外,我还需要结合网站页面的代码后置类文件程序代码、网站的数据库和网站功能的实际操作来一起理解。这是一套系统性的网站系统,所以只有这样结合起来才能真正读懂这些反编译出来的程序代码,并弄明白公司网站程序所反映的实际业务逻辑,也只有这样,我才能真正对公司网站程序有一个全面的了解和把握。

自己编写程序是一回事,阅读别人开发出来的程序又是一回事。自己编写程序,我可以按照自己的思路去进行,但阅读别人开发出来的程序,我就必须将自己的思路转变成开发者的思路。尤其是此时我所阅读的,是ASP.NET程序,而ASP.NET是我刚刚学习过、但还没有真正用于开发实践中的。所以这对我来说难度不小。而且公司网站的这些ASP.NET程序本身也相对复杂,所以我读起来就难度更大。

但是这些难度相对于我几乎从零开始去学习网站开发技术的难度来说,以及相对于我将那本厚厚的六百多页的ASP.NET的书学完的难度来说,几乎不值一提。于是我凭着自己的执着和毅力,又开始了新一轮的尝试。

很多事情往往都是你尝试过后才知道,原来你行。经过一番努力,在克服最初的困难后,我对这些ASP.NET程序的阅读变得越来越顺畅,而且从阅读这些程序中,我也渐渐理解了开发者的思路,通过阅读这些程序,我仿佛和这位开发者有了思想上的交流,我碰撞到了他开发思想中的精髓。这使我更深刻地理解了ASP.NET的机制和原理,以及领悟到了他作为程序员的良好的编码风格。他编写的每一行代码,都几乎作了最严谨的处理,以力求使程序做到简洁明了且逻辑准确无误,这正是一名合格的程序员的基本素质。正是受此影响,在后来我所做的开发中,我都尽量要求自己将代码写到最规范,并严格要求自己做到使程序逻辑准确无误。而且此时我在阅读中所看到的一些写得很好的函数和方法,我在日后的开发中也用到了。

虽然Reflector反编译出来的程序代码跟原代码在格式上(主要是变量名)会有一定的出入,但实际的程序逻辑并没有改变,所以我每读懂了一段代码后,只需将其稍作修改后就可以将其用到新类库项目中。阅读程序变得容易了,重新组织程序代码的工作也变得轻松起来。虽然不是自己开发,但这就像站在别人的肩膀上,可以看到更多和看得更远。在重新组织程序代码的过程中,我渐渐地感觉到自己在ASP.NET和数据库存储过程编写等方面的水平都得到了很大的提高。我也开始对修改公司网站的程序和核心功能有了信心,只要我将那些类库项目的程序代码全部重新组织好后,我就可以去做这项工作了。

我不得不由衷赞叹的是,公司网站的购物车功能、订单处理功能、票品产品发布功能等功能都做得很好,而且程序也写得很好,尤其是那个票品产品发布功能,在数据库的存储过程中用了三层嵌套的循环来处理数据的写入,可以一次就实现一场演出的多场次、多票价的数据写入,使功能操作简单便捷,工作高效。

听小魏说,公司网站程序就是上一程序员所开发的,那个程序员已在公司做了很久,原来公司网站程序是用PHP做的,后来他则用ASP.NET将其重做了一遍,这即是此时公司网站的程序。当然小魏并不懂得PHP和ASP.NET是什么,这是我根据她所说的内容理解出来的。小魏说,上一程序员也不是计算机专业毕业,而是靠自学学会的,而且水平也很厉害,但他要比我大好几岁,这时他应该30岁左右。所以我姑且称他为仁兄。

我根据网上所查信息得知,VS2003于2003年推出,这位仁兄在我2004年10月入职前已用VS2003(ASP.NET 1.1)来开发公司网站程序,而在我在公司所使用的电脑上我也曾看到过这位仁兄使用过VS2002(ASP.NET 1.0)的记录,由此可见这位仁兄早在2004年VS2003刚推出不久时,就熟练运用ASP.NET来进行开发了,他是应用ASP.NET的“先行者”。

这无疑给了我很大的鼓舞和信心,原来不是计算机专业毕业而走进程序员行列的,并不是只有我一人,而眼前的例子也证明了,不是科班出身也同样可以做得很好。

小魏说,在招聘我进来之前,这位仁兄正在做公司网站的新功能,但当时的总经理,即后来招我进来的那位经理的朋友,一再要求这位仁兄加快开发速度,而且给这位仁兄的开发需求不断变更,所以这位仁兄一气之下就辞职走人了,而且工作还没有交接完就离开了公司。

当中的是非对错,我无法多作评论,而且用小京的话来形容,这位仁兄有点“得瑟”,但这完全不妨碍我对这位仁兄的佩服和景仰,他仿佛成了我的精神榜样,让我更明确地找到了前进的指引和方向。原来这就是我所向往的技术“大牛”,而技术“大牛”也曾如此近距离地和我在不同的时间出现在同一个空间上,我此时在公司所使用的电脑、所坐的座位,都是这位技术“大牛”曾使用过、曾坐过的。

后来在我也到了快30岁,并也成了一名技术“小牛”的时候,我完全理解了这位仁兄一气之下就辞职走人的做法,对于那些不断要求加快开发速度、不断变更开发需求的做法,我也深恶痛绝。

直到现在,我都清楚地记得小魏所说的,这位仁兄是天津人,而他的名字就叫津。这位未曾谋面的仁兄,谢谢他!是他开发的这套程序让我在ASP.NET上走得更快。

这篇关于《当程序员的那些狗日日子》(十三)重组程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/808240

相关文章

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

【新闻】AI程序员要来了吗?阿里云官宣

内容提要 6 月 21 日,在阿里云上海 AI 峰会上,阿里云宣布推出首个AI 程序员。 据介绍,这个AI程序员具备架构师、开发工程师、测试工程师等多种岗位的技能,能一站式自主完成任务分解、代码编写、测试、问题修复、代码提交整个过程,最快分钟级即可完成应用开发,大幅提升研发效率。 近段时间以来,有关AI的实践应用突破不断,全球开发者加速研发步伐。有业内人士坦言,随着大模型性能逐渐提升,AI应

美容美发店营销版微信小程序源码

打造线上生意新篇章 一、引言:微信小程序,开启美容美发行业新纪元 在数字化时代,微信小程序以其便捷、高效的特点,成为了美容美发行业营销的新宠。本文将带您深入了解美容美发营销微信小程序,探讨其独特优势及如何助力商家实现业务增长。 二、微信小程序:美容美发行业的得力助手 拓宽客源渠道:微信小程序基于微信社交平台,轻松实现线上线下融合,帮助商家快速吸引潜在客户,拓宽客源渠道。 提升用户体验:

程序人生--拔丝地瓜

一个会享受生活的人,难免会执迷于探索“三餐茶饭,四季衣裳”的朴素涵义。如今在这繁杂喧闹、竞争激烈的社会环境里,如何才能从周而复始的生活中挖掘出一点儿期待!这是一个仁者见仁智者见智的开放性话题。对于大部分的人来说,看电影、运动、旅游、美食、加班....是假日的备选安排。 春节临走之前,再次尝试“拔丝地瓜”,为何要强调“再次”二字?因为这道甜菜我已经尝试过很多次,失败与成功都经历过。十几年的烧饭经历

哺乳细胞重组表达人鼠嵌合抗体:制备与应用

重组抗体是一类具有广泛应用价值的蛋白质,在药物研发和生物医学研究中发挥着重要作用。本文将介绍重组抗体的表达方式,重点关注嵌合抗体制备和哺乳细胞重组表达人鼠嵌合抗体的技术原理和应用。 重组抗体表达的原理和方法 重组抗体表达是通过将人或动物源的免疫球蛋白基因导入表达宿主细胞,并使其表达出特异性抗体蛋白质。常用的表达系统包括细菌、哺乳细胞和真核微生物等。 嵌合抗体制备的步骤和优势 选择适当的抗原

vscode python pip : 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

在vscode中控制台运行python文件出现:无法将"pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 使用vscode开发python,需要安装python开发扩展: 本文已经安装,我们需要找的是python安装所在目录,本文实际路径如下: 如果在本文路径中没有此目录,请尝试在C盘中搜索 python,搜索到相关python目录后,点击Python 3.9进入目录,

2_为MFC程序添加菜单

在MFC中添加菜单栏 1,双击资源文件,显示资源视图,点击Menu插入Menu菜单,编辑菜单的ID,自己取名字。 2,点击“请在此处键入”添加菜单选项,输入&E,E的下面就会产生下划线;在产生的弹出菜单中继续编辑,并且可以添加事件处理函数; 在弹出菜单的任意位置,鼠标右键,弹出的菜单中选择“插入分隔符”,即可产生分隔符 3,在你设计的Dialog窗口的属性栏,选择Menu后面的

在Ubuntu 14.04上安装和配置SNMP守护程序和客户端的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 作为系统管理员的重要工作之一是收集关于服务器和基础设施的准确信息。有许多工具和选项可用于收集和处理这种类型的信息。其中许多工具都是建立在一种叫做 SNMP 的技术之上。 SNMP 代表简单网络管理协议。它是服务器可以共享关于其当前状态的信息的一种方式,也是管理员可以修改预定义值的通道。虽