软件开发心得体会范文(精选12篇)
一、项目实施进度评估。ERP项目是复杂项目,其涉及的部门、人员、资金、资源等对于任何一个企业来说都是空前的,而在上一节中我们通过项目三角形分析出来,项目的进度是否能够按照设计规划的进行是影响项目效果的关键因素,所以评估项目的成功与否,首先必须评估项目的进度是否按照预期的进度进行,如果每一步或者每一阶段,都能够严格的按照进度进行,相信项目会成功的,否则就是项目设计出现了问题。一般来说现在评估项目实施进度的方法可以使用目前最为常用的项目管理工具,其中Microsoft的Project就是不错的工具之一。其实很多项目的实施失败原因是虎头蛇尾,开始的时候大家心气十足,进度基本可以按照计划进行,而到了后来,每个人的工作都是交叉的,往往会受到其他工作的影响而忽视了项目的进度,致使项目进行不下去。所以除了有相应的制度保障之外,一定要有工具,再者说了搞IT的人不用IT工具,那不是“卖盐的喝淡汤”吗?当然现在的IT行业非常普遍。
二、项目成本评估。项目成本是评价一个项目是否成功的第二个关键因素,同样在项目三角形中成本占了一条边,所以成本的变化将直接影响项目的成功,如果一味追求项目的功能和进度,而忽视成本,那将不是搞项目,而是在赌博。现在的ERP项目本身的费用就很高,而且没有公开价格,国家价格监督都没有依据,全靠软件商的一张嘴,说多少是多少,会侃价的省点,不会侃价的就多花点。但是一旦我们已经和软件公司和服务公司(咨询公司)达成了一致意见,关键的问题就在于如何有效的利用双方同意的费用达成预期的任务目标,而往往在项目的开始企业的管理者认为项目刚刚开始,投入还不多,而不注重有效控制成本,而到项目实施一段时间之后,发现项目的预算已经不能保证项目的完成了,或者半途而废,或者追加投入,而追加投入又会遇到企业资金是否充足的影响。所以我们建议在项目开始之前一定尽量准确的做出项目预算,并拿出专款,避免在途中因资金影响项目进展。另外成本控制要从采购、人员工时等多方面严加控制。并建议分阶段进行成本评估,如果每个阶段都能够在成本控制范围之内最终的项目一定保证在成本范围内成功,关键在于当出现项目费用超出预算成本的时候要及时调整,确保总体成本控制在范围之内。
三、项目功能评估。ERP是功能性产品,最终项目是否成功很重要的一点要看功能,看功能是否达到了预期的要求。ERP的功能从总体上来说分为几大部分:进销存管理,或者现在有的公司定义的内部物流管理;财务管理,包括总账、应收账、应付账、固定资产等;计划管理,在企业中大都会涉及到两种生产模式的计划方法,分别是单件小批量生产模式的MRP计划方法和大规模流水线生产模式的JIT计划方法;粗能力计划和细能力计划等核心资源管理;另外还包括人力资源管理;设备管理;工、模、量、夹具管理;质量管理等外围资源管理。一般来说,软件商在签约之前都会给企业的管理者演示他们的功能,我告诉企业一个秘诀,在观看演示的时候一定要刨根问底的看功能,而不能走马观花的浏览。两者之间的区别就在于不要被软件商的演示者的各种托辞搪塞过去,一定要亲眼看到他们说能够实现的功能,不要相信没有数据不能演示、不是最新版本等解释理由。如果他们说有什么功能就当场拿出来。否则就是没有,在事实面前任何理由都是苍白的。在项目结束之前,对照双方约定的功能清单,逐个推敲,如果每一个功能都实现了,项目一定能够成功。
四、项目效果评估。功能具备只是基本的要求,关键还要看效果,这一点可能有人不容易理解,其实在ERP管理软件中有很多功能从表面上看功能和效果是有很大的区别的,比如MRP计划,可能大多数的ERP软件现在都能实现这个功能,但是是否准确,是否可以通过MRP计划直接指导生产,甚至直接根据计划产生的结果安排采购,这并不是任何一家软件都可以做到的,这里面涉及到计算方法是否科学,是否符合行业的规范,考虑的因素是否完整,预置的参数是否科学,比如提前期设计的是否合理,安全库存设计的是否合理等等都会直接影响计划的结果,其实真正的软件公司的功底就在这里区别。
五、可操作性评估。ERP软件的最终目的是让企业的广大职工都能够使用,所以可操作性如何是项目成功与否的另一项重要指标。企业的大多数使用者,尤其是一线的职工,计算机的水平都不会太高,如何让软件具有很容易操作的界面,让普通的职工也能够使用软件来操作,确保每一位使用者都能够方便快捷的使用ERP软件是项目成功的重要条件。有很多软件功能很强,但是就是操作起来难度也很大,非专业人士无法使用,这绝对不是优秀的ERP软件,优秀的软件应该是只要熟悉业务的人就可以操作,所谓所见即所得。
六、项目的延续性评估。ERP项目是企业赖以发展的长期投资项目,绝对不是消费型项目,所以项目是否能够伴随着企业的发展而持续得到应用是评估项目成败的另一向重要指标。持续性体现为升级能力、功能的扩展能力、客户化能力、跨平台能力等几方面:现在的软件平台每几个月就升级一次,当然应用系统的升级不一定要求紧跟系统软件的速度,但是也要及时升级,随着管理理论和管理方法的不断发展,管理软件的升级至少要跟得上管理方法和计算方法的更新速度,否则就是落后的;功能的扩展能力,就像上面我们所说的功能是评估的一项指标,但是功能能否根据企业的发展而及时更新,另外还有客户化的能力和跨平台的能力也很重要。
一、实训过程
首先,我们学习通用编程:任何类类型的所有值都可以同object类型的变量来代替。封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选出调用哪个方法。数组列表:ArrayList动态数组列表,是一个类库,定义在java.util包中,可自动调节数组的大小。
class类 object类中的getclass方法返回class类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。Java中对内存的分配是动态的,它采用面向对象的机制,采用运算符new为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变。程序运行中 Java系统自动对内存进行扫描,对长期不用的空间作为”垃圾”进行收集,使得系统资源得到更充分地利用.按照这种机制,程序员不必关注内存管理问题,这使Java程序的编写变得简单明了,并且避免了了由于内存管理方面的差错而导致系统出问题。而C语言通过malloc和free这两个库函数来分别实现分配内存和释放内存空间的,C++语言中则通过运算符new和来分配和释放内存,总之,Java语言是一个纯的面向对象程序设计语言。
Java语言是分布式的。Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 Java语言是健壮的。Java的强类型机制、异常处理、废料的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。 Java语言是安全的。Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。 Java语言是体系结构中立的。Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件), 然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。 Java语言是可移植的。这种可移植性来源于体系结构中立性,另外,Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。 Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。事实上,Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。 Java语言是多线程的。在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。值得注意的是Thread类已经实现了Runnable接口,因此,任何一个线程均有它的run方法,而run方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为synchronized)。
二、心得体会
刚开始时张宇老师先教我们配置JAVA的编程工具和运行环境,然后教我们学JSP,在此期间,我们自学了JAVA,又学了Tomcat的使用及MySql和HTML语言,当我们JSP入门后,陈老师开始教我们学习JSF框架,但由于学校的安排,刚开始学,陈老师便去了苏州,由在苏州带队的孔祥盛老师回来教我们,在孔老师的安排下,我们又学习了SQL Server 20xx和Struts框架,教我们学会了Javawebstudio的使用。总之,
在两位老师的细心辅导下,我们有了很大的进步,知识得到了扩充,认识得到了加深,也使得我们的自学能力得到了很大的提高,在此,我向两位老师表示由衷地感谢。这次实训是三年中所学知识的一次汇总,是三年来学习能力的一次集中体现,有的知识在这次实训中用不到,但以后会用到,我敢说肯定会用到。因为好多东西都是厚积而薄发,所学的知识在关键的时刻也许只有一种用得上,但这一种也许足以成就我们的人生,到那时我们才能真正体会到知识的伟大,才能真正了解老师的重要性。我觉得要成为一个合格的程序员,首先要具备的是一种自学能力,遇到了问题自己要有能力去解决,当你尝试了各种方法,实在无能为力时再去请教别人,这时你所学的知识你一生都不会忘记,它将成为你一生的财富。有句话说得好:进攻是最好的防守!当你遇到了问题,你要试着去解决,编程嘛,想到了就要去试,你的面前就一台电脑而已,它又不会爆炸,你怕什么呢?我不敢说我的观点一定正确,每个人有每个人的想法,也正是因为大家的观点各不相同,才使得IT业这个新兴的产业在短短的几十年中得到了长足的发展,给人类社会创造了超过以往人类社会所创造的价值的总和,这不能不令人惊叹,也正是因为如此,它才使得我对它产生了强烈地好奇心和探索欲。未来的社会是信息的社会,信息业所创造的财富在人类社会中占据首位,经济、军事、教育、医学、农业等领域无一不用到信息业所产生的科技成果。我能感受到它所创造的经济效益会有多大,所以,我要说:我爱编程,海枯石烂,矢志不渝!我是一个新技术的狂热追随者,每次上网时总要到MLDN上逛一下,当看到短短的几行代码却能产生令人惊叹的功能时,我就被编程者的那种魅力所折服,我想成为其中的一员,我为自己现在所学习的专业感到自豪。
在我学习的过程中我也遇到了很多的问题,可是我却发现我遇到的好多问题在网上总能找到答案,我才明白我遇到的问题很多人都遇到过,并且他们也把解决的办法发布到了网上,以使我们这些初学者少走些弯路,我觉得他们太善良了,同时我也明白了自己是多么的渺小,我正在走前人走过的路,到底前面的路有多长多远,我不知。他们是开路先锋,他们为我们学习新技术新知识铺平了道路,我们所要做的就是把他们所发明和创造的东西掌握使用而已,并且知识量又很大,当我看到有无穷无尽地学习资源供我享用时,我只能说,他们像太阳一样照耀着我成长,他们太好了。当我看到程序代码,我就有一种特别的感觉,让我不断想成为一名编程高手,如果真的有一天,我的理想会实现,我会加倍努力好好学编程,永远不改变!通过三个月的实训,我感到自己学到了很多东西,虽说不精,但已经入门,于世间万物之中,遇见我所遇见的事物;于千万年之中,时间的无涯荒野里,没有早一步,也没有晚一步,刚巧赶上了,上苍让我有机会接触编程,给了我一条路。我很清楚以后的路还很长,再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。任何业绩的质变都来自于量变的积累,成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成,让我们将事前的忧虑,换为事前的思考和计划吧!在实训的过程中,我深深感觉到自身所学知识的有限,有些知识点以前没有学过,但我也没有去研究,实训时突然间觉得自己真的有点无知,虽然现在去看依然可以解决问题,但要浪费许多时间,这一点是我必须在以后的学习中加以改进的地方,同时也要督促自己在学习的过程中不断的完善自我。另外一点,也是在实训中必不可少的部分,就是同学之间的互相帮助。所谓”当局者迷,旁观者清”,有些东西感觉自己做的是时候明明没什么错误,偏偏程序运行时就是有错误,让其他同学帮忙看了一下,发现其实是个很小的错误。所以说,相互帮助是很重要的一点,这在以后的工作或生活中也是很关键的。
俗话说:“要想为事业多添一把火,自己就得多添一捆材”。此次实训,我深深体会到了积累知识的重要性。在实训当中我们遇到了不少难题,但是经过我们大家的讨论和老师细心的一一指导,问题得到了解决。两个月的实训结束了,收获颇丰,同时也更深刻的认识到要做一个合格的程序员并非我以前想像的那么容易,最重要的还是细致严谨。社会是不会要一个一无是处的人的,所以我们要更多更快地从一个学生向工作者转变,总的来说我对这次实习还是比较满意的,它使我学到了很多东西,为我以后的学习做了引导,点明了方向,我相信在不远的未来定会有属于我们自己的一片美好天空。
为了方便学校院系考评本院系各班级预备党员的学风、品行,作为预备党员转正的参考依据,校方委托我团队设计制作“校园预备党员评优系统”,通过学生不记名在线打分的形式考评预备党员的各项素质,并按照各项考评分数给出每个被评分人员的综合考评得分以及排名情况。建设目标:学生考评做到有理有据,公平公正为了方便学院领导对每个处于预备转正期的学生的综合考评,学院除了要考评其个人学习成绩外,还要听取广大师生的意见,从而为我党选拔品学兼优的人才。
为此考评系统从学生的德、智、体、美、劳以及宗教信仰共6个方面进行考评,并为每个考评设定优、良、差三个等级供师生评判,且采用网上在线投票的形式进行打分,同时禁止重复打分,恶意修改分数,跨班级打分等现象,进而做到有理有据,公平公正。解决方案:校园预备党员评优系统评优系统分为三大模块,用户管理模块、学生评分模块以及考核统计模块。用户管理模块,收录参与评分师生以及预备党员的个人信息,系统会给出预备党员的个人信息描述,以便评分者了解,而评分师生则只收录登录用户的基本资料,方便管理。学生评分模块,评分师生对预备党员的6项指标进行评分,等级为优、良、差三个级别,系统后台则会记录不同等级对应的分值。系统会记录每个评分师生的评分操作,以防止跨班级评分,修改评分,重复评分等现象。考核统计模块,学院党支部老师可以从班级、专业、个人、考评项目等多维角度查看被评者的分值,进而从多方面了解该生的情况。
项目收益:使校方能从多个角度了解,认识学生校园预备党员评优系统不仅仅是一个针对预备党员个人素养的综合考评工具,更重要的是,它能够帮助校方更好的了解自己的学生,包括学业、爱好、性格、宗教信仰、为人处事等,为学校选拔优秀人才,预防校园不良事件提供了一定的支持。
智能表单系统在网站中经常会遇到需要用户填写一些资料的情况,这个过程对于用户来说没有任何问题,但如果表单样式经常修改,对于网站开发人员来说,将是一个比较繁琐的过程,他除了要修改表单的网页样式,还要相应的修改后台数据库的样式。是否有一种软件,既能实现表单创建、数据库表创建以及表单发布一站式服务,又能让非计算机技术人员轻松掌握,智能表单系统应运而生。建设目标:表单创建及发布一站式服务,非计算机专业用户轻松掌握智能表单系统面向的主要用户是那些不懂计算机编程,并且需要经常发布表单或者修改表单的网站文案人员,借助这套系统,用户只需简单的拖拽一些表单控件,并为这些控件命名,告知信息录入人员该填写的条目项即可,而数据库表则在发布后自动生成,无需技术人员另行建立。解决方案:智能表单系统智能表单系统的核心价值就是简单易用,且高度自动化。
它完全基于B/S架构开发,能够很好的应用与网页表单。智能表单系统由表单引擎、数据库引擎、信息发布及处理引擎组成。1、表单引擎,负责表单控件以及表单界面的生成;2、数据库引擎,负责表单对应数据库表的生成;3、信息发布引擎,负责表单生成后的网站发布;4、信息处理引擎,直接面向信息录入人员,接收信息的录入以及数据库信息的调取;智能表单系统不仅仅允许新增表单及其数据库表,同时也允许用户在线修改字段,包括添加、修改名称以及删除字段,相应的数据库表也会改变,做到了全程自动化。产品特色及用户受益:一站式服务,简单易用智能表单系统具有表单创建、修改、发布、数据库表的编辑一站式特性,用户只需简单的拖拽控件即可完成这一整套工序。这套系统能够缩短网站表单建设周期,同时也解放了开发人员。
20年2月2日,我有幸成为的一员,应聘为公司的java软件工程师。入任职以来,在部门领导的带领下,自己感觉无论学习、技术、生活等方面都有很大的提升。
20年里我主要完成的工作有三方面:
1、荆门石油石化巡检系统的调研和开发。
该项目是我工作以来第一次涉及到调研,对我来说算是一个不小的挑战。在调研过程中,让我学会了如何通过和客户的沟通来了解客户的需求。由于自己的工作经验不足,在调研工作中体现出一些问题。不能很直接的在和客户沟通中非常准确的了解客户的更多需求,有很多需要和客户交流沟通多次才能明白客户的最终需求,也没有把自己作为最终用户并站在用户的角度上来考虑问题,这些都是我在以后的工作中需要提高和改进的地方。在巡检系统的开发工作中,让我进一步巩固和加强了自己的开发能力。
2、电信12530增值业务的开发与维护。
从5月以来我就开始接手公司的主要业务之一,12530电信增值业务。由于前面负责这个项目的同事突然离职,导致这个项目的交接工再做得不够好,对我顺利接手这个项目造成很大的困难。而刚一接手这个项目,马上就需要新上一个投票活动,并要对一些主要代码进行修改,让我倍感压力,几乎都快放弃。最后在金总的指导和鼓励下,顺利的完成这次活动。在完成这次投票活动后,为了避免下一个接手这个项目同事与我遇到同样困难,我第一时间将这个项目的相关技术文档补充完全,保证别人能够顺利的进行该项目工作。通过这个项目,让我加强了自己在高强高压下工作的能力,也让我找到更多自信。
3、家政网络服务中心的开发与实施。
在这个项目中,除了承担开发工作以外,也逐渐涉及到项目管理的职责,让我在个人能力上有所提高。为了这两个项目能够顺利完成,除了完成自己的工作外,还主动关心其他同事的工作完成情况。让我在项目管理和项目进度的把控能力有很大的提高。将家政网络服务中心顺利实施,为我公司拿下湖北省其他市的家政网络服务中心奠定基础。在工作之外,我也注重个人能力的提高。工作之余,主动学习一些新技术,与同事沟通配合,搭建一个ssh的开发框架。也学习spring security知识,这些新知识的积累,对我以后的工作有很大帮助。
20年工作展望:
1、将学习的spring security整合到我们自己搭建的ssh框架,进一步完善框架。
2、利用搭建的ssh框架,开发一套oa系统平台。
3、做好襄樊、鄂州家政网络服务中心的维护工作。
4、希望公司能够大量拿下湖北省其他市的家政网络服务中心,继续开发和实施湖北省其他市的家政网络服务中心。
5、继续学习新技术,努力提高自己的个人能力。为以后能够更好,更顺利的工作奠定基础。
6、希望通过自己的进步和努力,能为公司的发展做出自己最大的贡献,体现出自己的最大价值。
在大学里的最后一个冬天,我完成了3个月的实习,实习对我而言是一个难忘的.体验,让我不论做人还是做事都改变了很多。 总的来说,虽然说不上乐在其中,但实习的确是一段充实而有意义的事。
实习期间积蓄了太多太多的感悟。 借此机会跟大家分享一二。
感悟一: 当我们进入社会工作,就先要进入各种规范中去。
作为一个软件开发人员,记得在我第一天进入公司实习的时候,首先要学习的就是编程规范。 相信每个搞开发的同学都跟我一样吧。
编程规范在学校里是十分不重视的。 老师也不会硬性地要求学生要遵照怎样的规范去编写代码,实验或者作业什么的,只要能实现功能就ok了。 但是公司却不一样,公司的代码并不是一个人编写,别人很可能需要阅读甚至修改你的代码,阅读一个不符合规范的代码,所需要的时间可能比重新开发还要漫长。 代码规范的重要性是不言而喻的。
当然,作为一个开发人员的前提,我还是公司里的一个员工(虽然不是正式的。。。)。 我还必须遵守员工的规范。
其实员工规范也没有什么特别多的要求,个人认为就跟上学差不多,虽然规范是差不多,心态上却有着很大的差异。 原因无他,你到学校是自己交钱上学,上班却是别人发工资给你。 拿了人家钱,还要扰乱人家的规范,这种事我还真干不出来。 看来钱不论到哪里都是一个问题,呵呵
感悟二: 我其实是一种很唯心的动物
其实本来,我是写"人其实是一种很唯心的动物",但不知道别人是不是也这样,虽然我觉得是,却无从考究,还是严谨点。
为什么说我唯心呢? 当我心里把自己当作一个学生,跟把自己当作一个上班族时,在各种细节上都会不一样,例如那有点虚无缥缈的"气质",或者是说话的语气。
这个大概是"站在不同的高度,看到不同的风景"吧。 正如老总看的是公司发展方向,主管却在看业绩,经理在看项目,小弟们在看代码。。。
感悟三: 设计模式很重要
设计模式是我到公司才接触的事物,主要是讲述一种面向接口的编程思维,按照设计模式所编写的代码,会比学校那种直接实现功能的代码繁琐一点,增加很多看似多余的虚类或者接口。 但是这种代码更加具有拓展性,更好地把数据封装起来。 在增加状态,增加类的时候,并不需要修改过多代码,这种代码对于版本升级尤其重要。
在公司培训学习中,我总能很快地掌握各种设计模式的要领,获得上司的好评。 但是我明白,设计模式真要应用到代码中去,是要培养一种习惯。
个人观点好像说得有点多了,下面说说我这3个月里的实习情况。 总的而言,我到公司接触了2个平台,一个是现在很火的android,另一个则是nokia的qt。 android 用的基本是java语言,其中还会带点xml语言; 而qt用的则是c++。
对于这2个平台,用着的感觉其实大同小异,用我上司的话说,基础打好了,语言就不应该是障碍。 感觉挺有道理的。 想当年我作为一个vb助教,却没半点vb基础,对vb那些基础问题还是可以比较轻松地解决,这跟我其他程序语言基础比较好有着密不可分的关系。
android平台的一个基本窗口是一个activity,除了基本的activity外,还提供listactivity和tabactivity这些拓展的子类,每一个activity都可以看作一个窗口,一个进程可以有多个activity,每个activity都拥有一个view,view可以通过xml设定,当使用activity的子类时,必须注意这些子类的xml必须含有特定id的控件,或者不用xml实现view,系统会有一个默认的xml去实现那些一个基础view并且实现必要的id。
在谈到view,那么就必须说到layout了,android的layout很强大,最基础的是横向或竖向的排列布局,另外还有网格,表格布局等等。 掌握好布局的方法可以让我们对界面设计事半功倍。
android有趣东西有很多,在我完成那个移植应用的时候,android总能给我一些惊喜,例如popwindows这个设计,他作用是弹出一个窗口等,或者你可以把他看作一个acticity,效率却比activity快很多。 利用popwindows,你可以做出风格各异的消息框,菜单栏,下拉菜单等等。
另外还有一个抽屉类也很特别,他就像触屏系统的解锁一样,拖动手柄,便可拉出一个界面,这种设计大大地节省应用的空间,减少切换界面的操作,从而降低应用的功耗。
告诉大家一个很多人不注意的地方,android应用如果进行横竖屏幕切换的时候,进程会完全关闭后,再重新打开的,因为android做了保存状态的操作,所以很多人会以为屏幕切换后,进程还是本来的进程。
qt跟android有很多共通点,例如android的activity就如qt的qwidget,当然,他们的状态机有着很大的区别。
qt最大的特点是他的信号槽,通过信号和槽的连接,可以把很多类与类间相关的函数连接在一起,甚至可以传递参数
首先我是一个女孩,学软件开发的女孩相对于男孩来说并不是太多,但是因为我自己对编程比较感兴趣,所以就从事了这个行业。
我们学校的学生从20xx年的下半年就已经开始出来实习了,据我所知我们计算机系的学生大都从事别的行业去了,从事计算机行业的人数非常少,我想大部分是没有过硬的技术知识的原故,不敢去应聘本行业的工作吧。
我一直是一个有上进心的女孩,对软件编程有很大的兴趣,总想着自己也要像男孩一样,做一番属于自己的事业,不能白白的虚度自己的青春,但我又不想从事与计算机沾边的初级职位,比如文员之类的。因为如果自己的第一份工作从做文员开始,以后自己的职业生涯就不好规划,肯定会离软件编程越来越远的。
说实话我的家庭条件并不富裕,但是我有一个非常支持我上学的父母,他们狠狠心在我上了几年大学之后又给我交了几千元的培训费。从那时候起我就想着我一定要好好学习,对得起父母。
就这样开始了我的培训旅程,其实说实话在培训的过程中我是时而感到特别迷茫,时而又有了奋斗的激情,这不免有个人的因素,也有培训环境的影响。
在这里我想提醒一下那些想参加软件培训的学生,在你们选培训班的时候一定要看清这个学校以前培训学员的就业情况,特别重要的是培训老师有没有教学经验,一些培训机构总是以赚钱为目的,鼓吹着自己的培训老师拥有几年几年的项目经验,其实我感觉没有教学经验的老师还不如项目经验少一些的老师。
我们培训部就是一个例子,我有时候就感觉听我们老师讲课简直是一件非常痛苦的事情,他讲课从来就不备课,只是根据自己的工作经验,想到哪个知识点就讲哪个,我们听课的学生一点思想准备都没有,而他常常在课堂上为了调试一个程序的一个小小的错误耽误一两个小时的时间,而这期间往往也是我们最煎熬的时候,因为我们要坐在那个地方陪着他找错误,这种情况下的我们非常受折磨,并且感觉时间都白白浪费掉了,以至于根本没有什么收获。
再来谈谈我自己的情况吧,我在大学期间编程语言学的还算不错,当时我们只开了c++、java两门编程语言课,还有软件开发相关的SQLServer20xx数据库,我的这三门主修课程每次考试都很优秀,参加培训时也有老师劝我学软件前台,网页设计什么的,说是女孩比较适合学这个,好就业,而软件开发大都是男孩子,女孩几乎是学不通的。我当时就是为了证明自己的能力,根据大学期间自己的学习情况,我相信自己能学好。
但是也因为我们老师讲课的无计划性,课程拖到现在还没有结束掉,时间已经过去6个月了,我开始思索我自己的人生了。
经过四个月的培训,我不能说我没有学到什么东西,但我还要说一点,我虽然每一样技术都知道了,但是我学的仅仅还只是一个皮毛而已。软件开发最重要的就是编程思想,可我现在的水平只是编写代码达到非常熟练的程度罢了,对于编程思想感觉还是没有踏入软件开发的门槛。而编程思想主要来自于你所做过的实际项目获得的经验。而我们培训部的项目不仅少而且不怎么实用。所以要想参加培训还要看清这个培训部的项目是不是够份量,没有实际的项目经验去应聘软件开发的工作还是不行的。
经过仔细的思索,我已经决定去找工作了,现在正是找工作的好时候,虽然我没有多少项目经验,但我相对于应届毕业生自信多了,也许这就是培训的力量。不过哪怕找到一份小小程序员的工作干着也行,因为现在对自己的职业定位还有点迷茫,我自己的性格属于那种做事情非常认真、踏实、细心,感觉更适合做软件测试方面的工作,对于软件开发我还是抱着先试试工作的态度,主要源自于我自己头脑反应太慢,估计一直做软件开发对职业发展前景是有碍的。
最后告诫那些还在上大学的朋友们,如果你们想在软件行业发展,那你们一定要在上学期间多上网看一些编程方面的视频,自已尝试着把企业要求的知识点自学一下,跟着视频做一些小型的项目。其实自学知识点是不难的,只有你有恒心。因为我培训的感觉就是公司要求的一些东西很多并不是我们不懂,而是我们在学校其实是连听说过都没有听说过,这样的话哪个公司会愿意。
立项前
1、统一元素设计需考虑周全
也许是初创团队的缘故,我不得不感叹团队对产品经理要求之严格之缜密,项目全程只有一个人负责,所以大到产品线对接,小到一句提示的位置和展示形式都需要一一推敲。
哪些元素应该做到统一
a、提示方面:统一的操作成功/失败提示;统一的弹窗形式;提示语言采用较统一的句型;为空情况的友好提醒;溢出情况的友好提醒;表单实时验证的提醒形式等。
b、文字方面:是否有统一的段落前“·”号;统一的链接状态;统一的字体、间距、行高等。
c、图片方面:调取图片的统一尺寸;如果是上传图片类的操作,需要考虑周全全站的调取情况,以及考虑是否统一预览图的尺寸等。
d、细节交互:未激活功能的按钮做“灰色”处理(例如用户没有勾选信息时批量删除按钮不可使用);按钮点击的状态统一(例如增加“提交中”的按钮状态,以防止网速慢用户狂点某一按钮的情况);特殊控件的统一等。
也许会有朋友说,上面有些是交互设计师需要做的事,但我一直认为作为一个产品经理考虑周全一些,没坏处。这些“统一”同样可以用在验收阶段,要知道,即使一个像素也可以改变整个产品的感觉。
2、原有功能的去留
我一直觉得升级已有产品比开发新产品难一些。这就像栽培植物一样,新种下一棵果树无非需要选对了土地,然后刨个坑种下去,然而成长期的去病枝、打顶等各种修剪所消耗的精力往往更多。
改进已有产品常常需要面对一个最棘手的问题:原有功能是去是留?
原功能去掉的话是不是会影响部分用户使用?是否需要通过公告、站内信、界面引导等方式友好地告知用户?怎样把对用户的伤害降至最低?
原功能留下的话是不是可以优化完善?听到了什么用户群怎样的声音?是否要在这次升级中做调整?
这些问题当接到项目的时候,产品经理就应该考虑周全了。特别需要注意的是,如果这个产品之前不是自己设计的,那么最好找到prd说明文档细细研究一遍,对把握不准的功能点找到原负责人确认,毕竟树苗是ta摘的,别把将来最能结果的枝干给砍了。
3、产品线上下游的对接
昨天有跟朋友聊起淘宝强势之处,就是产品与产品紧密捏合,线上线下、跨平台跨行业形成了一个盘根错节、根深蒂固的根基,无可撼动。
所以把握产品线上下游和产品周边很重要,即使一个看似简单的新闻展示页面修改也会牵扯到编辑后台、广告位管理、帮助中心,甚至是访问统计、数据需求的变更。
这要求在产品设计开始前,需要把该产品“连根拔起”,仔细梳理相关脉络,如果产品线够长,一个清晰的产品线结构图很有必要。
项目中
1、项目期间来自相关产品线调整的影响
项目期间相关产品线的调整是我最不愿意遇到的情况,这就像你在通往目的地的道路上高速行驶,就快要到达终点了,突然一个人告诉你:你走错路了。
项目里有一个通用模块,产品设计到一半,这个通用模块改了;项目里有一个流程,产品做到一半,这个流程废弃了;最要命的是已经立项开发了,你不得不硬着头皮跟程序员说:“因为一些不可抗拒原因,这个需求咱不做了。”
对于一个耗时较长的项目来说,这种情况难以避免,事出原因私自总结有三:
a、严重体验性问题:例如某个流程遭到大量用户的不满,为防止用户流失,不得不做临时调整,而倒霉的是,你也在用这个流程。
b、相关项目的影响:包括并行项目和新项目。例如你的同事在设计另一个产品,你们的产品相互牵扯较多,所以需求分析时做过很多沟通,但有一天,同事告诉你,ta的一个需求做临时调整了会影响到你,怎么办?
c、老板的突然决定:不举例。
最终的解决方法不外乎三种:立即调整、延期调整、不调整。个人的处理原则一般是对a种情况进行立即调整,对b、c情况讨论并选择性延期。
为什么这么做呢?a情况是必须要改的,时间早晚问题,长痛不如短痛,b、c两种情况必须坐下来细细讨论。需了解这个需求为什么要改?是长期对策还是临时决定?能否延期,记录需求等下一版本再开发?如果b、c情况提出来的需求没过两天又有改变,那与你配合的前端和程序员也太没有安全感了。
这个时代能耐心阅读完枚汉字的人越来越少,较大型项目的产品工作心得[下]未完待续,欢迎交流……
2、需求变更
承上,需求变更是每个程序员、产品经理、设计师等都会遇到的情况。产品经理不是神,项目组也不可能是开了无敌状态抵挡任何外界的影响。
当遇到不得不变更需求的时候,产品经理应该怎样处理呢?下面是个人的四条建议:
a、积极处理。往往,当一个设计愈是趋于完成,人们愈是倾向于局部调整,而不是做重新设计。当一个需求因为众所周知的原因不得不调整的时候,作为产品经理需要做的第一件事便是积极面对问题,积极处理。
项目开发往往是一个紧张的过程,每半天甚至每几个小时就有若干个功能点开发完成,当一个需求变更传达出现“延迟”,这个变更对项目的正常进程的“破坏力”就会更大一些。
b、保持沟通。“说话容易,沟通很难。很多事除非对方自己想明白,劝是没有用的。所以,很多时候,沟通是个自己挣扎的过程”这话没错。需求变更直接会影响到下一道工序,产品经理需要将需求变更的细节和原因传达给相关人员,包括视觉、前端、程序、测试等。
这是很多产品经理表示非常痛苦的过程,因为可能会遭到数落和冷眼,日本有一个礼仪原则是“不要给别人添麻烦”,但是在项目中,这不可避免。
个人认为所有沟通的障碍都源于思想的不统一,如果让大家觉得这个需求修改是在浪费时间,那么沟通上的不畅快在所难免。项目不是这样算的,需求既然更改一定有所目的,产品经理需要将这个原因讲明白,不做修改或节约沟通时间导致的返工,后果往往更严重。
受某化公司委托,开发一款用于视频和图像处理的软件,开发难度高,高到从未搞过,开发周期长,长到是我以前项目监控最长开发周期的两倍,开发成本之底,让我觉得程序员成了高级打字员。首先是需求分析书、产品规格说明书、设计说明书、代码规说明书、测试计划,光稿就不知道熬了多久才做完。
紧接着,遇到一系列问题,首先是语言选择,vc++和c#都是可以保证开发完成的选择,但是vc++内存容易报错,界面很难修改,而客户要求的界面质量甚至比程序的功能更严格,没办法,客户就是上帝,上帝做事一定有他的道理。c#语言易于开发,而且图形界面绘制也易于修改,可以做出客户体验很的界面,但是在资源的消耗上,让我很吃惊。做到第二个月,大概的界面已经完成时,出现界面刷新的问题,刷新时开始卡,界面不流畅。没办法,改。
开会,总结,技术骨干找问题,拿出解决方案,力争第一次做软件把它做:
重新做软件开发进度计划和软件测试计划,并且让独立功能demo制作和测试先行;
用direct draw、direct 3d或者opengl中的一个替代c#本身的gdi绘图,将在接下来的开发任务中加入进去。
事无巨细,当我满意的看着界面流畅,功能也已实现时,发现软件在低分辨率或者小本上根本乱到没法看,甚至是界面功能按钮错位,重叠等等。没办法,改。毕竟软件的多分辨率兼容和操作系统兼容是必须要做的。
接下来一大堆的麻烦找了上来,软件出现各种各样想都想不到的问题,总算是按时将第一个版本发布出去,并且开始接下来的升级开发任务。
最后,给刚刚接手软件开发项目的朋友一些忠告:
一、相关的档不是给别人看的,而是给自己看的,相关档一定要齐备,而且让所有涉及开发的人员都清楚的知道你档里所要表达的意思;
二、一定要注意多做demo,多做实验,一个demo程序员几个钟头就可以完成,甚至更少,但是不做demo,核心程序没有做实验,其他的东西都围绕核心程序做了上去,到时候耽误的可不是几个钟头
三、程序设计要注重用户体验,当初客户对我要开发软件提出近乎苛刻的要求时我不在意,但是当我自己反复使用软件时有了很多体会,流畅美观的界面带给人心理的快感的确能替代一些尚未开发完整的功能带给用户的遗憾。
四、测试计划多次进行,分批进行,不要全部开发完成再对软件做测试。
还要坚持三个月,软件马上发布,希望大家的支持,谢谢!!!
作为一个软件开发人员, 记得在我第一天进入公司实习的时候, 首先要学习的就是编程规范. 相信每个搞开发的同学都跟我一样吧.
编程规范在学校里是十分不重视的. 老师也不会硬性地要求学生要遵照怎样的规范去编写代码, 实验或者作业什么的, 只要能实现功能就ok了. 但是公司却不一样, 公司的代码并不是一个人编写, 别人很可能需要阅读甚至修改你的代码, 阅读一个不符合规范的代码, 所需要的时间可能比重新开发还要漫长. 代码规范的重要性是不言而喻的.当然, 作为一个开发人员的前提, 我还是公司里的一个员工(虽然不是正式的...). 我还必须遵守员工的规范.
其实员工规范也没有什么特别多的要求, 个人认为就跟上学差不多, 虽然规范是差不多, 心态上却有着很大的差异. 原因无他, 你到学校是自己交钱上学, 上班却是别人发工资给你. 拿了人家钱, 还要扰乱人家的规范, 这种事我还真干不出来. 看来钱不论到哪里都是一个问题, 呵呵
感悟二: 我其实是一种很唯心的动物
其实本来, 我是写"人其实是一种很唯心的动物", 但不知道别人是不是也这样, 虽然我觉得是, 却无从考究, 还是严谨点.
为什么说我唯心呢? 当我心里把自己当作一个学生, 跟把自己当作一个上班族时, 在各种细节上都会不一样, 例如那有点虚无缥缈的"气质", 或者是说话的语气.
这个大概是"站在不同的高度, 看到不同的风景"吧. 正如老总看的是公司发展方向, 主管却在看业绩, 经理在看项目, 小弟们在看代码...
感悟三: 设计模式很重要
设计模式是我到公司才接触的事物, 主要是讲述一种面向接口的编程思维, 按照设计模式所编写的代码, 会比学校那种直接实现功能的代码繁琐一点, 增加很多看似多余的虚类或者接口. 但是这种代码更加具有拓展性, 更好地把数据封装起来. 在增加状态, 增加类的时候, 并不需要修改过多代码, 这种代码对于版本升级尤其重要.
在公司培训学习中, 我总能很快地掌握各种设计模式的要领, 获得上司的好评. 但是我明白, 设计模式真要应用到代码中去, 是要培养一种习惯.
个人观点好像说得有点多了, 下面说说我这3个月里的实习情况. 总的`而言, 我到公司接触了2个平台, 一个是现在很火的android, 另一个则是nokia的qt. android 用的基本是java语言, 其中还会带点xml语言; 而qt用的则是c++.
对于这2个平台, 用着的感觉其实大同小异, 用我上司的话说, 基础打好了, 语言就不应该是障碍. 感觉挺有道理的. 想当年我作为一个vb助教, 却没半点vb基础, 对vb那些基础问题还是可以比较轻松地解决, 这跟我其他程序语言基础比较好有着密不可分的关系.
android平台的一个基本窗口是一个activity, 除了基本的activity外, 还提供listactivity和tabactivity这些拓展的子类, 每一个activity都可以看作一个窗口, 一个进程可以有多个activity, 每个activity都拥有一个view, view可以通过xml设定, 当使用activity的子类时, 必须注意这些子类的xml必须含有特定id的控件, 或者不用xml实现view, 系统会有一个默认的xml去实现那些一个基础view并且实现必要的id.
在谈到view, 那么就必须说到layout了, android的layout很强大, 最基础的是横向或竖向的排列布局, 另外还有网格, 表格布局等等. 掌握好布局的方法可以让我们对界面设计事半功倍.
android有趣东西有很多, 在我完成那个移植应用的时候, android总能给我一些惊喜, 例如popwindows这个设计, 他作用是弹出一个窗口等, 或者你可以把他看作一个acticity, 效率却比activity快很多. 利用popwindows, 你可以做出风格各异的消息框, 菜单栏, 下拉菜单等等.
另外还有一个抽屉类也很特别, 他就像触屏系统的解锁一样, 拖动手柄, 便可拉出一个界面, 这种设计大大地节省应用的空间, 减少切换界面的操作, 从而降低应用的功耗.告诉大家一个很多人不注意的地方, android应用如果进行横竖屏幕切换的时候, 进程会完全关闭后, 再重新打开的, 因为android做了保存状态的操作, 所以很多人会以为屏幕切换后, 进程还是本来的进程.
qt跟android有很多共通点, 例如android的activity就如qt的qwidget, 当然, 他们的状态机有着很大的区别.
qt最大的特点是他的信号槽, 通过信号和槽的连接, 可以把很多类与类间相关的函数连接在一起, 甚至可以传递参数
实习心得
从学生到走上工作岗位,一步步的熟悉和认识着周围的环境,熟悉这社会生存之道!在这里我学到了我离开校园的第一笔知识,这些都是从书本上学不到的知识,从体验公司的文化到亲身接触公司的每个部门的人员,从公司的季刊杂志上,从其他员工的言谈中,有好的信息,也有不好的耳闻,总之,我的感觉中,我们的公司还是在不断前进发展。
从学校迈入社会,华润以自己的姿态给我这样一个良好的锻炼平台。从学生到工作,华润以自己的品质和精神让我了解和洞察并融入社会这个大家庭,华润为我创造了这样一座桥梁。融入华润,融入社会,我以华润的精神强化自己,以华润的记纪律规范自己,每一天努力,每一步的行动,都让我逐步提高和完善自己,以至于在这个平凡的岗位上做到一个合格称职的职业人。
工作中有苦有乐,产线上同事之间的互帮互助,让我充分体会到与人协作,共谋发展,合作共利的快乐。产线5s让我深刻认识到良好整洁的工作环境是工作效率和品质保证。产线纪律是我规范和端正自己的工作态度,保证每一颗电路的品质。在这样的环境下,在这样的氛围中,我也渐渐养成了良好的工作习惯和责任意识,努力将这份工作做到更好。从华润到社会大家庭,从一颗细小的电路到做人做事,不容置疑每一步都至关重要。“千里之行,始于足下”,我想,一切都从身边做起,从细节做起,从小事做起,从当下这份工作做起。播种行为,收获习惯;播种习惯,收获性格;播种性格,收获命运。一点一滴的积累,一点一滴的进步都将决定和影响着我的将来!
我是公司一名文员,部门涉及很多业务数据的东西,在此之前,公司的所有业务记录都是通过一张excel表格来完成,第一次看到那张表的时候是真心吓到了,字段有几十个,项下又有很多拆分合并,其中又大多为数据和日期,通过几天的整理发现了不少错误,更加感叹需要一个数据库来解放人力、提高效率。
从开始接受access培训到现在已经有半年时间,虽然上学期间学校的老师也有给我们讲过access的知识,但只是讲了些关系的建立及简单的查询,以为access就好比word、excel等相对比较简单的办公软件一样。但开始接受盟威Access的培训后,对Access的看法才改变,原来Access还可以这样玩;参加学习之初,由于自身一开始认识误区的心态导致自己走了很多弯路。一开始所有的Access老师就告诫我说一定不要心急,要按培训指南指导,要按照教程一步一步做下去,切忌眼高手低。但因为心想自己对电脑还算有点感觉,加上公司一直比较急,又很想短时间内做出点东西,就没有很耐心的把教程步骤做完,导致后期回炉再造无数次耽误很多时间,在这里希望大家引以为戒。
在学习的过程中,因为老师是一个阶段一个阶段发教程的,当我看到报销系统时,就已经觉得十分十分的强大了,然后自己就想边看教程边偷懒开始自己开发,虽然老师一再强调不能不会走就想跑,但自己还是开始蠢蠢欲动了,等到做了一部分之后看到了进存销系统后,又发现里面有很多自己可以学以致用的东西,然后又开始重新做,再等到新版的快速开发平台出来了,自己又一次被震撼了,感慨Access快速平台的强大,基本的模块都不需要自己手动创建了,简直太厉害,真是技术宅改变世界。
整个开发过程可以说是充满艰辛,但又有很强的成就感。虽然自己有时候会想不出来该怎么做,但是!还有一群很厉害的老师可以帮你,有时候老师们一句话、一段代码就能帮我搞定自己苦思冥想很久都做不出的步骤,可以说每一个成功的系统背后都有一群默默无闻的老师。
每次把自己一些乱七八糟的想法告诉一对一老师,其实自己都觉得可能做不了了,但每次杜老师都会给我惊喜,帮我完美解决掉,十分欣慰。
现在系统开发的已经在测试应用,虽然还有些部分在一步步完善修改,但我相信access的强大,能解决我的数据问题,也相信盟威老师们的技术给我的支持,在此感谢这半年来所有老师的大力支持与帮助,也希望盟威软件快速开发平台做得越来越好,让更多跟我一样的菜鸟开发出属于自己的数据库软件,解放自己的工作强度。
随着我矿“两化”融合工作的推进,软件开发方面人才显得更加缺乏,所以我选择对Asp.net进一步深入学习;经过近两个月的自主学习,进一步掌握了Asp.net动态网页制作的一些理论知识和基本常识,不仅要应用各种方面的知识还要对所学的知识学会变通使用,虽然会有一些成功的地方。曾经看到网上有这么一句话,一个优秀的网络程序员不但要了解自己领域的一些专业技术,而且很多时候还要充当半个网络工程师,半个美术设计师和半个数据库管理员。Asp.net是战略的核心产品,Asp.net凭借它丰富的控件,以及具有革命性的code-behind技术,以及良好的封装性,无疑成为业界开发activeserverpage的一门巨将,
Asp.net是ASP(微软动态服务器网页技术)的最新版本。执行效率大幅提高:Asp.net构架是可以用Microsoft(R)公司最新的产品开发环境进行开发,WYSIWYG(WhatYOUSeeIsWhatYouGET所见即为所得)的编辑。简单性和易学性、高效可管理性Asp.net使用一种字符基础的,分级的配置系统,使你服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为"ZEROLocalAdministration"的哲学观念使Asp.net的基于应用的开发更加具体,和快捷。一个Asp.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须得文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性Asp.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝链接技术,将很大的提高运行速度。即使你现在的Asp.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP确做不到这一点。自定义性和可扩展性Asp.net设计时考虑了让网站开发人员可以在自己的代码中自己定义"plug-in"的模块。
这与原来的包含关系不同,Asp.net可以加入自己定义的如何组件。网站程序的开发从来没有这么简单过。安全性基于Windows认证技术和每应用程序配置,你可以确性你的原程序时绝对安全的。Asp.net的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有ASP应用程序中逐渐添加Asp.net功能,随时增强ASP应用程序的功能。Asp.net是一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与.NET兼容的语言序。另外,任何Asp.net应用程序都可以使用整个.NETFramework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
Asp.net可以无缝地与WYSIWYGHTML编辑器和其他编程工具(包括)一起工作。这不仅使得Web开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到Web页的GUI和完全集成的调试支持。当创建Asp.net应用程序时,开发人员可以使用Web窗体或WEB,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义.如果你从来没有开发过网站程序,那么这不适合你,你应该至少掌握一些HTML和简单的Web开发术语(不过我相信如果有兴趣的话是可以很快的掌握的)。你不需要先前的ASP开发经验(当然有经验更好),但是你必须了解交互式Web程序开发的概念,包含窗体,脚本,和数据接口的概念,如果你具备了这些条件的话,那么你就可以在Asp.net的世界开始展翅高飞了。
在这短短的两个月中,我知道在程序设计的时候,不要太在意程序是否最简洁灵活,对于一般开发者而言,程序规范化和可读性可能比追求程序的灵活性更加重要。在互联网资源越来越丰富的情况下,我们可以参考一些规范的程序源代码来学习。同时我也知道,想要学好这门课程,所要具备很多条件,首先打代码要规范,要做注释,这样回头来看程序时可以很快的看懂,一方面可以练习自己的逻辑表达能力,对以后遇到难以实现的功能也可以很好的表达出来向别人请教,而且出去从事编程工作的话,代码的规范是相当重要的。还有一点要学会总结,把自己做的程序用到的知识点列出来就可以很好的总结自己的知识点。当形成知识体系,对知识的理解就会更上一层楼。
本周是实习的第一周,很幸运碰到了产品部很有耐心的leader詹老师。 实习第二天他让我做一个H5的游戏类应用, 主要用于微信中分享。之前对于自己的水平是否能完成完全没底,但感觉第一次实操确实也有点让人兴奋,之前关于产品开发的印象只停留在书本上。
詹老师让我模仿“过家家gogaga”所开发的“打电话认师姐”微信小游戏写一个类似的应用。 我把原始应用找出来便开始抠代码, 第一步是将套在微信接口中的原始应用抠出来(套在微信接口的原始应用只能在微信浏览器中运行,无法在电脑上测试),周二开始做.
一开始我的效率非常低, 因为我很多测试方法并不熟悉, 在参阅了微信JS-SDK后总算把原始代码抠出来, 厘清该应用的基本逻辑后开始重写, 在詹老师的耐心地指导和对基础知识的讲解下,我们将原始代码中120行的CSS代码优化到60行,将五百多行的JS代码优化到只有60行,这事实上是在原有的逻辑上完全重写了,这让我开始有点成就感了。
也第一次感受到产品开发中的大局观,这种大局观更多的是体现在细节上,比如代码变量名的设置需要与文件存放联合考虑,以便日后修改和维护。 詹老师在讲代码逻辑的时候亲自写了一个例子让我体会, 虽然消化这些用了快一天,但感觉真的收获很大, 有拔云见日之感。
实习一周后所遇到的种种困难也让我意识到自己很多问题,归纳如下:
1.尽管之前对于书本的学习有一定积累,但还是暴露出代码的不熟练,细节方面处理能力差,在细节上耗费时间太多。
2.缺乏基本的软件开发测试思路, 比如之前不知道chrome具有相当强大的错误测试功能,它对于没有触发的函数也有错误提示。
3. 缺乏专注的习惯,比如詹老师让我先完成功能方面,但我却习惯于去找找界面的素材, 这就导致两边都没有做好。虽然认识上知道不该这么做,但是习惯上却很难改。
4.自己很多时候虽然有问题但是不能完全阐述清楚,所以跟leader沟通的时候往往支支吾吾,以后有问题自己首先得想清楚,将问题讲明白也是很关键的能力。
另外也记录一些自己的浅薄感受:
1.工科出身的詹老师对于代码的运行效率有很多的考虑,但对于用户体验和交互效果似乎稍微少点,当然也可能是我新来并不了解的原因。
2. 公司在做小应用的时候并不会在用户测试和产品结构功能上讨论太多,公司要的是迭代效率, 就是要快速出应用,然后再快速上线下一个。
本周接到新的任务,为中国教育在线制作H5的招聘页面, 之前的“给师姐打电话”的H5应用还没有优化好,能做的改进的地方还有很多,leader詹老师让我先把招聘网站做好, H5应用先放放, 他给了我大街网做的“中国好Offer”作为参考, 拿到之后确实感觉这些页面都做得很好, 詹老师搜集的资源确实十分丰富,从实习到现在他发给我的参考很实用,在看完了五六十个H5的招聘页面之后开始构思, 在将产品架构基本做好后,测试又发现很多问题, 有技术层面的,但更多的设计本身的问题。
技术的细节的问题:基于jquery mobile的开发框架国内的资料十分有限,不得不查阅原始的英文API,很多问题也只能去JQM的论坛查找,这些都十分考验英文阅读能力。CSS的布局问题繁杂,在各个浏览器,各个应用的渲染都不一样, 也是很折磨人的过程,我现在就碰到了css中font-weight属性在Safari没有渲染的问题,至今没有解决。
逐渐体会到前端工作的繁琐与细节, 需要学的东西很多, 有时候可以凭自己一些小聪明在当前解决,但并没有摸到问题的根源,扬汤止沸不是长久之计,但又好像没有足够的时间来系统的摸索,我只能先将这些问题一一记下来。这些技术的体会是一方面,另一方面便是产品的设计层面, 现在就是因为产品快做好后发现有很多地方犯了低级错误, 以往的纸上谈兵头头是道,等到自己亲身实践却感到把握不住很多设计原则, 比如界面设计给用户造成的不必要的干扰, 功能可见性的不足,逻辑上的不严谨, 以下我归纳了下岗做好的H5界面存在的交互问题:
1.页面的设计初衷是左右滑动来切换页面,但给几个朋友测试后都不能进入页面后就自然而然的知道是左右滑动。
2.join us的图标给用户是按钮的错觉,在测试中很多用户以为是按钮,都会下意识的点击。
3.交互效果的乏善可陈,与滑动的逻辑似乎也没有太大关联,只是单纯的加入了一些css3的动画。
4.用于提示左右滑动的动态箭头会让用户以为是点击作用