首页 > 代码库 > 万里长城第一里——实习之后台开发

万里长城第一里——实习之后台开发

2014年6月16日,实习开始,下午由秘书领现在部门。认识了主管俊哥,师父雷哥,同期实习的张,以及其他前辈。

俊哥和我们谈过部门的工作内容和分类,我们也说了自己在实习期间的目标,快速融入团队,学习相关知识,提升工作技能。
雷哥和我谈了开始C#语言和面向对象的感悟,安排了实习计划:开始的两周学习语言,第三周熟悉开发平台,接下来学习空间,控件的设计。

接下来的一个月时间,按照安排进行。第一周看书《C#4.0图解教程》学习C#。第二周学习读写xml文件,参考书《深入理解C#中的XML》及在W3School网站上学习C#,XML的几种模型。第二周桌面云申请到,可以一边看书,一边练习。编写窗体应用程序,使用DOM模型和Xpath模型,进行读取、改写、增删。


第三周,雷哥布置一个窗体应用程序:使用datagridview控件表示xml文件中的数据,能够增加删除修改,要求在本周四完成。首先熟悉datagridview控件的基本属性和方法,完成文件读取和数据显示。对于窗体间的数据传递问题木有解决,导致增加功能花费几个小时的时间。晚上回到学习继续查询和测试,解决窗体间数据传递问题。接下来将dialog.showdialog()写成dialog.show(),导致子窗体可以显示但不能传递数据,最后在单步调试中找到问题的原因。了解此两种方法的区别:窗体模式与非窗体模式。   通过这次碰壁,程序通过单步调试容易发现出现问题的原因。
当这个窗体应用程序完成后,雷哥查看程序运行结果,显示、增加、删除、修改完成,查询功能做的不足,使用Xpath表达式完成。雷哥说:产品面向用户,如果用户不知道xpath表达式,查询怎么完成?
总体来说完成功能,但查询做的粗糙,软件面向用户,要满足用户的需求。开发软件,面向用户,站在用户的角度使用软件!

第四周,周三雷哥布置一个web界面读取、增加、修改、删除xml文件中的数据得任务。从TortoiseSVN下载项目文件,整个源码下载将近90分钟,速度大概是1M/s,可见整个项目的源码内容之多。周四开会整整一天。晚上和雷哥沟通终于理解清楚任务的目的。雷哥说到他当年学习这些基础走的路子,问的方法等等,当年他是看过多少书,问过多少人,写过多少代码。
周五的上午查询文件路径,这个问题没法解决,没法读出xml文件,网络上问题的查询关键字有偏差,得到的解答也是五花八门。
下午请教同组的康哥,解决了这个问题。webconfig中设置和服务器路径的获取,读出了xml中的数据,下班之前完成增加功能。

第五周,所用ASP控件以text方式显示,无法嵌入按钮等功能,和前台组同事讨论,使用前台数据增删使用javascript实现,给后台信号,完成数据的删除修改。在网上查询其他控件gridview,结果不满足给定的CSS样式。问题澄清:页面触发一个删除或修改动作后,后台ASP得到信号,对xml文件进行相应操作,再次读取xml文件,显示操作结果。

最后雷哥出面,使用linkbutton,返回后台一个postback事件,后台获取控件ID和参数。给出了方法,写出了相应程序,但是事件无法捕获到,还是请教雷哥,发现是postback的格式写错。网络上的样本,和现在的格式有一定的区别。雷哥看到代码说的代码重复利用率基本没有,只有两个函数,除了代码长,没有其他特点。

方法格式问题是压倒骆驼的最后一根稻草,接下来的问题,我自己应该能全部搞定了。
事实上,以后的页面重复提交问题,数据缺省兼容问题,修改后位置不变等问题已近独自解决。改变代码结构,一个动作完成一个功能。如果功能可以细分,重复利用率进一步提高,但也要权衡,避免矫枉过正。

这次的任务是大量查询资料,相关不相关,看ASP内容,看W3School上的asp webform,mvc等内容,请教前辈,问题清楚具体,才能定位准确,完成具体任务。

总结来说,后台开发的时间过的飞快,学习,开发,编码,查询资料等等,接手一个任务,首先清楚任务的目的,完成什么样功能,什么要求,站在用户角度。接下来是定方案,自上而下,流程,从主干道细节。最后是各个功能的实现,从简单到复杂,完成基本功能,高级功能是在完善基本功能。