转一个程序员对一个软件的总结

问题描述

一个程序员开发一个简单要求的图形软件可能比较容易,但要做到专业水准就比较困难了,主要是时间不够,而VisualGraph经过近十年长期的积累,功能全面。例如,多页面、多图层、表格图形混排、透明度、自由旋转、动画效果、自定义网纹、自定义线条、自定义箭头、自定义提示信息窗口、自定义光标、图形保护等等。不仅做到了功能全,而且每个细节都做到极致。这不是一件容易的事。  VisualGraph在每一个细节方面都做到能够应付未来用户可能提出的种种要求。为了解决这问题,创建了独立的脚本语言。在这里你甚至可以用它开发应用软件,更不用说纷繁多样的图库了。  作为专业图形平台,必须要适应所有编程语言(包括Foxpro、PowerBuilder、C#等),为此,我们开发了通用的COM接口,既要照顾到不同语言的能力,同时还要维护自身功能的强大,在编写程序时,设计完备的COM接口能够即时帮助程序员找到所要的属性或方法。图形接口采用OOP思想设计,每一个属性、函数的名称都经过长期反复推敲。脚本语言的编程习惯和一般语言相同,各种属性、函数名称也都相同,尽量取悦于程序员,使他们感觉舒适。  为了使产品在Windows各种操作系统下都能很好工作,我们作了许多特别设计,例如在Windows98操作系统下启用特别编写的绘图算法,而在Windows2000或WindowsXP操作系统下将采用微软更好的优化算法。甚至根据用户计算机配置的不同,能自动选择表现更好的绘图引擎。  为了能够在互联网上使用,插件必须尺寸足够小、速度足够快却不能影响功能,为此,VisualGraph在源代码级每一个环节都自行设计,包括脚本语言、脚本编辑器、XML解析器、甚至数组,没有采用任何第三方技术,即使不压缩,也最多只要1.2兆就包含了全部功能(VC编译)。如果是做产品,当然东西越大越好,但是如果是控件,则越小越好。  为了适应工业上机器常年工作等高强度条件,系统必须做到稳定,产品质量不能有一点点问题,否则就不能用。为了达到这样的要求,每个新版本出来,都要在BorlandC和VisualC两大编译器下编译出最终产品。在大量的测试文档和测试用例下通过。而这些文档和用例都是长期积累下来的。  VisualGraph作为专业组件,主要面向电力、化工、煤炭等工业行业,作为一个市场不大却技术含量极高的产品,和国外比较接近的产品动辄一两百万相比,价格是最低的。以前国内许多公司自行开发图形部分,花费了大量的金钱和时间,还要有长期的维护工作,跟购买VisualGraph投入的资金相比,明显花钱少,见效快。 VisualGraph是一套非常完善的图形系统,适合在电力、煤炭、化工、仿真、网络、自动化等各种工业监控软件以及图形建模、图形管理、图形分析、中小型GIS系统、工作流、中文表格、表单、工程绘图等软件项目中应用。  VisualGraph图形系统适合开发各种电力软件,如:SCADA系统、图形操作票系统、电网图形拓扑分析PAS软件、调度员培训模拟仿真系统、线损管理系统、无功优化控制系统、远程载波抄表系统等等  VisualGraph是一套强大的交互图形开发平台,她能非常方便地建造基于图形的界面、制作各种图形元件、实现图形管理、图形建模、制作监控系统、表单系统、绘图系统、流程设计、CAD软件等。她提供功能非常强大的ActiveX组件,和其他流行的编程语言共同工作,极大地弥补了这些语言在图形处理方面的不足。也可以嵌入IE浏览器中,实现网上图形编辑和控制等。  VisualGraph专门处理交互图形,与具体业务无关,她提供了十分丰富规范的交互事件和图形控制命令,内置结构简单开放的脚本语言,使程序员能够专心编写后台系统等与图形无关的部分,体系结构十分清晰。  软件特点是:  1、图形文件和图形库是同一种XML格式。也就是说,图形文件同时就可以当作图形库,从而轻易实现图形的继承和嵌套,不需要专门的图库编辑软件。XML格式的文档使得软件开放性、安全性更好,也便于互联网传输和数据库存储。  2、一个文档包括多个页面图形。多页面的设计,相近的业务可以被安排在同一个图形文件中,在图形文件被视作图形库的时候,每个页面被当作图库中的一个图元。  3、页面支持多图层,图层可以隐藏或锁定。这样在处理复杂画面的时候,就可以把图形分类放在不同的图层上。通过令某些图层隐藏、锁定等操作,方便图形的绘制。图形可以很容易改变它所在的图层。  4、基本图形只有三种(文字、形状、线条),却可以制作种类繁多的各种匪夷所思的元件。这是VisualGraph精华所在,我们在其他绘图软件里面看到的图形几乎都能够在VisualGraph中开发制作出来。而VisualGraph能够制作的图形种类和复杂度却远远不是一般图形软件能够达到的。例如可以制作能够动态变化的仪器仪表、各种数学函数、任意按钮开关、设备符号、棒图、饼图、曲线图、各种尺寸线、各种特殊线条、自由旋转的传送带等等,几乎可以说无所不能了,如果软件需要制作一些特殊的图形,那么VisualGraph是不二之选。  5、可以进入元件内部编辑其细节。当一个元件被放在画面上,仍然可以进入其内部,对它进行个性化的修改。  6、方便的线条编辑,持续绘制曲线、直线,修改曲线,允许线上插入顶点,删除顶点。可以指定某些顶点为控制点或者连接点。  7、直接在画面上编辑文字。文字选中一部分可以自由拖动到其他位置。文字单元具有繁多的属性,行间距、字间距、自动卷绕、自动计算表达式、各种边框、对数字的各种修饰方案,还可以设定是否套打等等。  8、对各种修改有无数次的Undo和Redo,许多软件都声称有这个功能,但仔细看看其实并不是全部操作都可以undo、redo无数次,vg在这方面做的比较全面。  9、浮点坐标,图形精细编辑。可以把图形放大许多倍编辑细节。为了避免出现小数点后很多位的情况,软件对绘图结果特别做了一些安排。  10、内置专门的VisualGraph图形语言。这种语言的语法只有几句,变量不需要声明类型,直接赋值即可,函数参数和返回类型也无须声明。关键字支持中文。对象不需要释放。可以访问外部函数库例如WindowsAPI。可以混合编程,调用用户自己语言的函数。每个图形单元都支持事件。  11、每个图形可以定义背景图案,图片可以透明、缩放、平铺。  12、可以编辑EMF格式的图形。如果图形的背景图片是EMF格式的,这个图形可以被转换成VisualGraph的图形元件,可以拆分后编辑细节。从其他绘图软件一般均能够拷贝图形到VisualGraph后再编辑。  13、文档打印纸可以自由设定位置、大小和缩放比例,打印和设备无关。打印纸可以设定是否显示(因为有许多情况是不需要显示打印纸的),打印纸可以用鼠标拖动(因为可能要调整想对位置,当然也可以不允许拖动),可以用鼠标改变打印放大率,当打印纸变大的时候,打印内容相对就缩小了,反之,打印内容就变大。打印纸可以设定打印边界。在某些特殊的场合,打印纸可以设定页眉、页脚等,甚至打印纸支持任何背景图形。  14、文档可以设置背景图形或者各类网纹。和普通图形的背景修饰一样,整个文档可以设置各种图案,各种过渡填充,也可以设置图片背景。  15、支持图形分组。图形逻辑分组,一个图形可以同时位于几个不同的逻辑图形组中,这样可以方便将来的计算、分析。例如你可以把画面上的设备按类型分成不同的组。  16、多种连接线,可以建立图形间的拓扑关系。有直线连接、曲线连接、平直连接,平直连接线自动选择路径,可以用鼠标方便地改变位置和合并线条,在交会点还会自动出现拐弯。非平直连接线如果连接到图形的中心位置,会自动选择合适的边缘连接点。元件设计时允许在任何位置定义任意数目的连接点。  17、多种箭头风格,并可以任意自定义箭头。箭头没有任何限制,可以随便绘制,也可以在程序中对箭头进行任意编程修改。随着线条粗细的变化,箭头随之变化。  18、自定义线型。线条的形状通过修改其绘制区域和非绘制区域的比例来实现。  19、自定义网纹。预定意的网纹大致有80多种,但是如果觉得不够,还可以自行绘制网纹,如果需要更大的网纹,则应该使用背景图片进行平铺。  20、支持多种网格类型定位,但优先连接关系定位。栅格形状有网状和点状两种。栅格的大小被保存到图形文件中,这是为了保证下次载入后能够保留定位信息。如果图形有连接关系,则优先。也就是说,即使某两个图形的连接点不在栅格上,也会自动连接,这是为了使图形在不改变栅格的情况下更方便地连接而特别设计的。  21、支持文字和其他图形两种对齐方案。若干文字单元对齐是按照表格的方式对齐,互相不允许重叠,而若干形状、线条、元件等的对齐则允许重叠。这样特别设计的目的是为了表格的考虑,而且文字重叠在vg中被认为无太大意义。  22、图形镜像,可以保护某个图形不允许镜像。任何图形均允许水平和垂直的镜像,甚至过渡网纹、填充图片也会按镜像变化。  23、支持任意角度自由旋转,旋转中不改变图形其它逻辑。这是VisualGraph又一项重要的特点。任何动态的图形均可以无障碍自由旋转,比如曲线图、棒图、传送带、鼓风机、任何仪器仪表均可以随便转动。这一点,几乎没有什么软件能够做得到。  24、过渡填充、图片、箭头、文字标注、文字光标自动旋转。在图形旋转的时候,VisualGraph已经做得相当彻底,非常完美。本着制作精品软件的精神,才可能做到如此彻底。  25、基本图形、图形元件均可以自定义多个文字标注。折线的每一条边上都可以定义一个文字标注,文字随着线条变化而发生位置和旋转角度的变化。文字标注还可以定义其对齐方式。元件允许定义任意多个文字标注。  26、自定义多种类型的固定存储属性(整数、小数、逻辑、字符串)。这些属性可以在自己的语言中很方便地进行访问和设置其值。属性允许用中文。  27、自定义任何属性,类似流行编程语言中"属性"的概念。这也是VisualGraph重大特点之一,有了这个属性,VisualGraph甚至可以"做任何事"。一般的图形软件在自定义属性方面至多只能定义固定存储属性,却无法做到象编程语言那样的巨大灵活性。有了这个特点,图形元件就有了生命。  28、自定义函数。图形允许自定义私有、公有函数或引出事件,函数支持任意多个参数,函数可以有返回值。  29、众多的图形操作事件。例如鼠标左右键点击、鼠标移入、移出、拖动、改变大小、图形创建、删除、显示均会触发相应的事件。  30、和其它绘图软件互相交换图形。允许把其他绘图软件的图形、图片、文字等拷贝后粘贴到VisualGraph,并且还允许编辑。VisualGraph的图形还可以拷贝后以矢量图的形式粘贴到其它绘图软件中去,进行编辑。  31、通过对象的名字,访问它的属性和函数。不采用Id编号访问,而是象一般编程语言那样的设计,用对象的名字直接访问其成员,例如"变压器1.电压"。  32、无级别缩放,比例巨大。允许局部缩放,整页、宽度缩放。  33、图形可以设定是否打印,文字可以设定是否套打。图形显示和打印如果要求效果不同,这个功能就很有用了。  34、巨大的图形可以整体打印,也可以分页打印后拼凑。前者需要拖动打印纸,改变其大小,后者方便打印巨大的图形。  35、整体或局部图形导出BMP、JPG、EMF格式。因此,用VisualGraph绘制的图形可以转移到其他工作环境中使用。  36、支持读取互联网服务器图形文件。直接打开服务器的文件,VisualGraph会执行服务器上的文件,无需下载。  37、支持从内存读写图形。这样就可以把图形文件放在数据库或者字符串里面,快速载入。  38、支持移动图形到屏幕中间,任意滚动屏幕,手抓屏幕滚动。  39、图形可以计算面积。  40、用程序或者脚本绘图。动态添加、删除图形、动态建立连接拓扑关系、修改图层、各种图形属性等等。在绘图环境中能够完成的操作,都可以用程序或者脚本来实现。  41、支持标尺。如果感觉标尺不满意,可以自形开发和设计标尺。  42、图形锁定和解锁,按住ALT键可以操作已经加锁的图形。  43、划线自动寻找垂足、中点、顶点。  44、支持自定义提示窗口。鼠标在某个图形处允许出现提示信息,默认的提示信息是简单的小矩形框,自定义的提示窗口是一种元件,可以编辑,也可以在程序中动态控制。这样,就可以丰富界面的表现了。  45、元件自定义调控点。每一个调控点允许编写动作程序。例如尺寸线等就是用这种技术实现的。  46、支持报表开发。表格高度智能,允许移线、合并、插入或删除表格行列,支持多种表格边框,还支持斜线。不同于国外电子表格,这里没有行列的概念,不论其中的单元是否在同行、同列,表中任何一组单元都能用鼠标拖动到其他位置,单元组间可以建立任何复杂的算法,所以处理中国式的复杂表格例如表中套表最为简单。运行状态下,仍然允许编辑指定文字单元。  47、可以开发对话盒、子窗口、菜单。这样就可以很快地修改您的界面。  48、允许扩充功能和混合编程。不仅您的程序可以操控VisualGraph的一切技术,而且VisualGraph的脚本可以调用执行您的任何程序、函数。  49、提供图形的全部COM接口,在自己程序中象访问对象类一样方便地访问整个系统提供的一切技术。  50、在集成开发环境中还设有脚本调试器,设断点窗口、命令行窗口,变量浏览器等,信息十分丰富。

解决方案

解决方案二:
看不明白,还是顶下

时间: 2024-11-03 21:52:46

转一个程序员对一个软件的总结的相关文章

一个程序员在卖软件服务中学到的销售经验

干了将近7年的软件开发,我开发实现了很多有趣的东西.最近,我开始投身销售,研究营销技术--为了我的新应用. 我感到发现客户并理解他们的消费行为是一件非常有挑战性的事情,同时也有很多的乐趣.程序员对销售的典型态度要么认为它不重要--这是最好的情况,最坏的 情况是根本不知道何为销售.在这里我要讲的是非常不同的另一面,希望能带来一些能让大家兴奋的建议.如果你喜欢这些建议,我将会再写一篇. 下面的这些忠告都是来自我经营一个B2B服务软件的经验.也许并不是每个人都能接受,但至少从趣味性和知识性方面还是值得

作为一个程序员我最大的遗憾

20多年前我处在了人生的一个十字路口.随着我们用5年时间为出版社(他们希望进入新兴的互联网空间)打造的Deltagraph的终结,我的第二家公司逐渐走向没落.那时我已经有了13年作为程序员的经验,并且有大概9年运营一家公司的工作经验(在同一时间). 我不想再兼任两职.我的第一家公司1985年-1987年不仅创建了新的电子表格程序,而且我们还自己发布了出去.我带领公司,除了搞定所有的媒体 公关,管理投资人,做了所有常见的业务内容,而且还是三个程序员中的一个,并担任了UI设计师.在87年年初发布了产

一个程序员的创业失败教训

这段经历是悲伤的,也是快乐的,毕竟创业是充满激情的,想着自己以后可以不再给人打工了,可以给自己打工了,一个程序员写了很多年的程序之后,能够有机会给自己写程序,现在想着都是兴奋的,心情久久不能平静. 创业的那个项目是我自己带队开发出来的一个大型的物流信息平台,技术团队都是我一手带出来的,每个人都有自己的技术特色,有的擅长客户端展现,有的擅长后台业务逻辑,有的则对总体架构把握很好,我认为这个团队是一个配合很好的团队;我们的运营模式是物流管理软件+物流电子商务+GPS在线运营平台一起运营.该项目的赢利

陈涛:一个程序员的八年前戏

创业家杂志 文/王雨豪 题记 他出身小镇,他曾因好打不平险些被斩杀于军校宿舍中,他是企业职工学校里的馒头师傅,他是红杉资本宠幸的创业幸运儿,他是2012年<财富>杂志评出的"中国40位40岁以下商界精英"榜单第四十名,他是北京圣特尔科技发展有限公司的CEO.他称自己的创业旅程为:一个程序员的八年前戏.他叫陈涛. 雨豪评述 1945年7月5日黄土高原夜,近代史学大师傅斯年在延安窑洞中与当年那位北大图书馆助理员毛泽东秉烛夜谈,毛没有忘记北大时代令他百感交集的情结:"我

怎样尊重一个程序员

得知一位久违的同学来到了旧金山湾区,然而我见到他时,这人正处于一生中最痛苦的时期.他告诉我,自己任职的公司在他加入之前和之后,判若两人.录 取的时候公司对他说,我们对你在实习期间的表现和学术背景非常满意,你不用面试,甚至不用毕业拿学位,直接就可以加入我们公司成为正式员工.然而短短一年 后的今天,这位同学已经完全感觉不到公司对自己技能的尊重.Manager让他做一些乱七八糟没技术含量的事情,还抱怨说他做事太慢,并且在他的 evaluation上很是写了一笔.在人格尊严和工作安全感的双重打击之下,这

程序人生-一个程序员对学弟学妹建议

  程序人生-一个程序员对学弟学妹建议 基础的课程,比方数据结构,操作系统原理等等虽然不能让你立马就实现一个linux(这是许多人嘲笑理论课程无用的原因),但它们能够显著的减少你在学习新技术时学习曲线的坡度.我把大二的所有时间花在了汇编,我始终认为,对一个初学者来说,IT界的技术风潮是不可追赶.我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心.而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑.

不要相信一个程序员在加班时间写出的代码这是真的吗。。。。。

作为一个最底层的程序员,我先记录一些只有底层程序员才会知道的事情.如果多年后,我违背自己进入这个行业的初心,走上管理岗位,也能回想起一些禁忌,避免一些错误. 其中最重要的就是这条:不要相信一个程序员在加班时间写出来的代码. (软件工程的学说表明,连正常时间好好写的代码,也不要太相信.不过这不是本文的重点,略过不提.) (不懂代码的人,看到本文中的Java代码可以略过,不影响理解.) 创造力的时限 写代码,与写文章.绘画.思考复杂问题,并没有本质上的区别,都是创造性的活动. 每个人的创造力,都会随

关于“我有一个好的想法,只差一个程序员”

问题描述 昨天发了一个"寻找有创业梦想的进销存软件开发高手"的帖子,被版主回复了两个链接,链接的标题是"我有一个好的想法,只差一个程序员",链接的内容是各种黑发帖人的,今天本想再讨论一下,结果发现帖子被删了,难道是因为我的回复顶撞了某位版主?诺大个CSDN的版主就这点心胸吗?!原帖:我的回复:关于"我有一个好的想法,只差一个程序员",我想说下自己的看法,不吐不快!首先介绍下我自己:本人一直从事计算机网络系统集成技术工作,算来有十多年了.这十多年来

主人公的出场—一个程序员的成长史(1)

        (大家好,从今天起,我的微信公众号(logiczhou)会连续推送<窗内窗外-一个程序员的成长史>系列.本系列以我本人从学校到职场的经历为原型,同时结合了我对软件开发工作.程序员的学习和生活的认识和感悟,欢迎大家阅读.你的点赞和支持是我写作的动力.下面是本系列的第一篇文章,让我们跟随主人公代是雄的脚步一起去体验程序员生活吧!)         翻开日历,已是2012年的4月.代是雄,中国一个普通高校的的硕士研究生,就要毕业了.         回首自己的在校的学习生涯,代是雄感