• 做一个项目,平时都用到哪些工具提高效率(下)


    接上回,继续分享.NET开发中关于工具的使用经验

    15  报表工具。数据的导入导出是系统的一项基本功能,我们让用户辛苦的输入那么多数据,现在是让用户享受成果的时候,你的程序要能用各种方法分析用户的input,甚至你也要帮忙用户分析performance.
    常用的报表Weekly report,Monthly report,Efficiency report by group/by employee,WIP report都要熟练掌握。
    以前的一个项目选用Crystal report,SQL Server 2005发布后,我们又多了一种选择:Reporting Services. 微软的工具一向简单好用,入门容易,尽管如此,你还是要熟练掌握给报表传参数,设计报表公式,区分RDLC和RDL(本地模式和服务器模式),还有动态调用报表。
    报表还支持调用自定义程序集。以前做的一个项目,在报表里面实现多语言版本,所有的label的Text属性都是调用DLL的类中的属性,做得相当漂亮。
    截一个图,分享一下
    参数选择区域
    image 报表结果
    image 
    报表中的Logo和公司相关的内容已经被我去除)
    最好还做一个报表管理器,集中管理所有的报表。

    16 任务记划,Bug追踪。
    这个内容在之前我已经分享过,请看这里
    软件错误报告与反馈

    17 需要熟练掌握SQL脚本书写,最好有大量的SQL代码供你参考。SQL Server本身自带的联机从书就是很好的SQL代码库,你的电脑中最好有SQL Server 2000,SQL Server 2005,SQL Server 2008三个版本的联机从书,查找SQL代码才会轻松自如。另外,经常看的书的随书源码也要保存好,必要的时候都可以参考
    image

     《SQL Server精华.chm》这本电子书也最好要用,关于SQL的问题,总结的很全面。
    如果你做过报表项目,你对SQL的理解应该是超过一般人的。写程序的时候,SQL不好写的,可以放到程序中去实现,比如字符串处理(权限字符串的分解与判断),计算处理(decimal的精度计算)。
    但是,在做报表的时候,你没有办法这么做,你必需老老实实的在SQL脚本中考虑好所有问题的处理方法,然后用T-SQL写好,于是,痛苦过后是对SQL脱胎换骨的理解。
    报表开发商注意到这个问题,现在Reporting Services支持调用程序员自己开发的Assembly,非常方便,报表的开发商为程序员打开一座后门,你可以从那里逃走,不必在冰天雪地,360度空翻,裸求SQL的写法,呵呵。

    18  需要了解一些常见的生产业务系统的动作流程。
    做了几年的程序,我们程序最了解的系统应该是系统管理(System Administration),一些常见的部门用户角色权限之类的系统,这样还不够,你还需要了解一些业务系统。
    以行业来分,做哪一行,对该行业的生产运作流程,大概应该有个了解,
    以通用性来分,生产管理(operation managment),项目管理(project management),品质管理(QC management),人力资源管理(HR management), 采购管理(purchase management),你都应该有所了解。
    看书是一种学习的方法;有机会到他们的工厂去参观一下,也是一种方法,而且印象更深刻;
    把人家的产品文档,用户手册下载下来,对照软件和用户手册一起看,一边操作,也是一种办法;
    以我的理解,每个细分的领域,还是有很多项目可做。通常人家不愿意花银子做,请不起开发人员;想做软件的人(user)没有决定权,有决定权的人(boss)没有做软件的想法;或是找不到信任的人,宁愿不做,还是用EXCEL的版本,春去冬来,年复一年。

    19 需要大量的例子程序,编程的时候想都不用想,代码拷贝过去程序就做完了。
    这里面需要积累,不是一朝一夕能完成的。做过的项目,好好整理一下,实在认为惨不忍睹(项目被改的面目全非,完全不是当初规划的样子,设计和编程完全脱节),把技术要点整理一下,下次做新的项目好用;还有,微软定期公布的demo,training kit, 你也要下载下来,保存好。
    我记得.NET 1.1发布的时候,101 sample code, 一个MSI文件,6MB左右,被我拷贝了很多份。每学一次,就按照自己的理解去改动一下它的例子,看看能不能运行,结果是否是预期的。
    image
    最近微软又在大肆宣传它的Visual Studio 2010和.NET 4.0,现在还是beta 2,预计下个月就RTM。
    你可以视而不见,当做没有这回事。也可以像我一样,把你电脑里的美女帅哥图片删除一些,留点空间给这些demo,sample code,training kit存放。跟着微软混,这些东东迟早是要的。

    20  需要一个合理的流程。boss开过很多次会,都提到过这个流程,分享给大家
    讨论需求-->设计,开发-->调整,培训,推广-->反馈,跟进,完善—> 再讨论,演化
    你可以把软件工程书里的那个流程那拿来和这个流程比较,以此评判我们公司的水平有限,我的水平有限。以公司的角度,
    按时按质的完成任务,是职业化员工的必备技能。
    每到一个公司,都有他自己的文化,你会发现书中所说的都是理想的状态。这种文化有时候是好的,是做事的一种默契,有时候也有弊端,他会抗拒变化,因为承担不起变化的责任而拒绝变化,抗拒改变。
    做一个项目要老老实实的分析需求,设计,开发;实施一个项目要有一些为人处事的伎俩和手段;在我手里,也有失败的项目,不是程序不好,
    程序可以持续改进,可以做CIP,从demo—>trial—> trial run,至始至终,向上得不到支持,向下面对一大群EXCEL终实用户的反抗,那个项目真是累死人,
    我只好give up.

    21 业务开发平台。这个东东,可能是管理软件开发的终极解决方案,像工厂一样,生产企业管理软件。
    平时我们见到的factory,是生产产品,现在可以生产企业管理软件的factory诞生了。
    以我的理解,需要这四个东东
    1) 业务实体设计器,可以生成业务实体,同时导出为SQL代码和C#程序代码
    2) 窗体设计器,可以生成用户界面
    image

    这是《俊先企业管理软件开发平台》中的例子,一个完整的窗全设计器,可以生成窗体代码,在运行时用反射技术,加载窗体,执行。
    我自己私下里也折腾过这个东东
    image
    用XML文件来表示窗体,运行时动态解析窗体文件。XML文件可以放到硬盘里,也可以放到数据库中。
    CREATE TABLE [dbo].[Form](
        [GUID] [uniqueidentifier] NOT NULL,
        [Name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
        [Text] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
        [Definition] [xml] NULL,
        [DataTable] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
        [LastUpdateTime] [datetime] NULL,
        [Workflow] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,
    CONSTRAINT [PK_Form] PRIMARY KEY CLUSTERED
    (
        [GUID] ASC
    )WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

    3) 流程设计器  直接用工作流本身的流程设计器,自己提前先设计好接口加再进去,否则那些外部方法和事件可能会找不到接口而不能编译通过
    clip_image002

    4) 报表设计器
    image

    有些工具是自己折腾的,有些东东是别人的作品,我只是拿来用,有些工具是在别人基础上,进过我的重新规划设计;这些东东只是自己的私房工具,没事的时候瞎折腾,并没有在公司的产品中应用,我敢截图出来与大家分享。不要向我索取,很多东东你都用不上,你只是好奇,真的,相信我。

    22 需要一个门户站点,来管理任务,问题,项目。
    推荐你用SharePoint Services,这东东70MB多,如果买了Windows Server 2003的License,这个工具包是免费的,好用,稳定,可扩展。
    下一个版本我打算把公司的WCF服务器驻留在这里,把报表服务器也驻留在这里,成为公司内部的team site。
    image

    美观大气,可扩展性好。

    写到这里,也写的差不多了,还有几个条目,没想好具体内容,暂且不表。
    应该说,不是这些工具重要,而是人更重要,人对了,软件和项目就对了,整个世界就对了。

    如果你错过了前面的内容,这里还有两篇,与大家分享,
    做一个项目,平时都用到哪些工具提高效率(中)
    做一个项目,平时都用到哪些工具提高效率(上)

    欢迎拍砖头。

  • 相关阅读:
    软件开发 [CJOJ 1101] [NOIP 模拟]
    OI中卡常数技巧
    疫情控制 [NOIP2012]
    开车旅行 [NOIP 2012]
    观光公交 [NOIP 2011] [思维推导]
    选择客栈 [NOIP 2011]
    2016级算法期末上机-F.中等·AlvinZH's Fight with DDLs II
    2016级算法期末上机-E.中等·ModricWang's Fight with DDLs II
    2016级算法期末上机-D.简单·AlvinZH's Fight with DDLs I
    2016级算法期末上机-C.简单·Bamboo's Fight with DDLs III
  • 原文地址:https://www.cnblogs.com/JamesLi2015/p/1663440.html
Copyright © 2020-2023  润新知