印刷行业进销存项目,用什么样的框架能开发效率更高学习成本维护成本更低

之前我也用java+servlet+jsp写过一个鞋材的进销存系统。写得也是很慢,同样一遇到客户的业务逻辑一变,为修改代码而疲于奔命。这时我除了php框架thinkphp,还想到了Spring+Struts+Hibernate等企业级的框架应用。

然后试图找来php,希望能发挥其敏捷的特性,为我加快开发速度和降低维护成本,做一个服饰连锁店销售管理软件──进货,配送到分店,分店销售,销售报表,管理员权限配置等模块,是从10月份开始的,用的是php原生态写法写的,发觉效率很低。

另外我去网上搜索了,java做进销存的应用,比php要多很多,那么是不是说明对于数学运算一些的应用,java强类型语言更有优势一些呢?而php流行的应用,多是互联网应用,以内容为主的,而不是数据为主的?

所以我现在很疑惑,我对java与php的熟练度都差不多,现在这个印刷进销存,包括以后还可能遇到的进销存,同样采用框架的前提下,是用java还是php的框架?另外弱弱的问一话,类似于进销存的应用──我明白离电信级别的应用差很远,那它能称得上企业级应用吗?

[b]问题补充:[/b]
TO:魔力猫咪

由于业务流程不熟,经常要改动数据库与业务逻辑。借此问一下,Java没有太多的互联网应用CMS,BBS,SNS,BLOG,这些基于内容的,而php遍地开花,但如果是基于数据运算的,进销存、财务做帐,就php的开源项目不太多了?
[b]问题补充:[/b]
TO:魔力猫咪 II
"要判断一个应用是哪种程序开发的有时候不是那么好判断的。"
可能刚才没有表达清楚,不是说从后缀名判断网站是用什么语言去写成的,而是说从网上的开源项目看,互联网应用php居多,discuz,thinksns,dedecms等众cms。而其它“高级”的项目java居多,lucene,OFBiz等。

应该说业务逻辑不熟,这是双方的原因造成的。
在温州-瑞安这个县级市里,软件开发者与客户对于软件都没有经验。瑞安的it公司以做企业网站为主,技术人员的分工也不明确,因为只有1-3人。客户方面是:在过去,温州的企业主们都是靠手工来记录台帐,企业内部沟通与协同办公则是在家里吃晚饭时一家人在沟通。

我接到客户说,要做一个管理软件,不用太复杂,最简单的够用就可以,所以这个订单的金额也都很小,1W以内的。一分钱一分货,那么我们就会做得简单些,赶工期;
虽然客户先前说好只要某某功能,只是做的过程中,需求还要不断增加。所谓麻雀虽小,五脏俱全,管理权限,表单验证,敏感字符过滤,日志等等,统统得要。

依照你的分析,我要做的是,把客户的需求挖掘出来──因为客户自己往往说不清楚,自己的业务流程是怎么样的,软件需要做成什么样,毕竟他们只了解自己的业务。这样要做出一个个性化人性化的管理软件就对双方都提出了要求,因为双方的水平都有限。
[b]问题补充:[/b]
正如你所料,这类小项目已经失败过两回.一个鞋材的软件,开发了一个月时,出现了一些细节上的需求,一些原先我明知需要的但被我阉割的功能.如分页.序号.表单验证.于是这个项目搁浅至今.目前这个印刷的软件也是二次开发了,上次的完全不合他的需求,上次我也向这位老板建议说购买现成系统,他是说用不到那么的功能,不如花同样的钱订制一个小型的系统.我本着尝试下新技术的想法就做了,结果导致了两边都 不讨好. 在温州这个传统制造业发达而信息产业不发达的地区.组建一支技术队伍困难重重,上个月与一位网络公司老板讨论

[b]问题补充:[/b]
TO 魔力猫咪 IV
讨论瑞安企业的信息化解决方案.瑞安有几千家的小企业.以往他们只做一个宣传型的网站,做一个丢一个,每次一个新单只是换换美工,来年顶多就是收个几百元的域名空间费,这样的做法只够维持公司存活.现在考虑是不是可以再挖掘这些企业的其他需求.从网站建设入手,可以免费试用,按月付费,抢占市场(域名在手上了).然后推销购买来的系统 oa 进销存 做帐 数据全部同步共享 包括前台网站产品数据, 公司从技术向服务转型.他的这种想法是不是就是你说的信息咨询服务?
[b]问题补充:[/b]
TO:魔 V
我是一名非科班出身始于爱好由vb开始的程序员..在零四年起,在校做学生信息,社团网站,参加大学生数模,算起来五年时间,虽然知道语言只是外在的.思想才是一通百通的.然而由于自卑与好奇,希望找到一门适合的万能语言,到处看语言c cpp asp delphi java php .net ,到现在都没有一门自己精通的语言,还是一个新门,很惭愧.

我知道自己的技术实力远不够,可一直没放弃过自己开发产品去营销的念头,所以经常会向身边搞it的boss讨教.

我猜想魔目前是prj leader类的职位吧,组织与编写文档多过写代码
[b]问题补充:[/b]
TO:魔 VI
如果选择B/S管理软件,对于我,多少有点基础,从大学业余爱好做的事情到现在的工作,都在做网站。更重要的理由是,我身边市场大环境下,有这个需求。

其实我是很反感做对数据库CRUD的,更反感在ie,ff,chrome各种浏览间之间调试css,js,好像没有创作的成就感,很崇拜做桌面应用程序,图像处理如PS,播放软件如KMplayer,下载软件如Flashget,装机必备一流的软件如winrar,极品五笔,有那么多用户在用,该是一件多么了不起的事情。

去年开始盯上了java,这似乎有点万能的味道,嵌入式,b/s,c/s,都能看到它的身影,因为开源氛围比.net强,应用广多了。那个失败的鞋材进销存正是用它写的。只是它对我来说,有点难了。官方的core java几次拿起放下,thinking in java看了两次都停在了泛型那章。上个月买了只G4,换下了我用了2年多的nokia 3250,信誓旦旦地说要在android下写程序,很快又冷却掉了。一是上面说的java对我来说有点难,oo的思想进不了脑,java就是运用不了。二是,没有需求,不知道要做出一个什么软件,才是人们需要用的,再说android market上的太多好的软件都免费了。
[url]http://it577net.iteye.com/blog/554179[/url]正像我这篇博文里写的,我一直在找方向。首先要养活自己吧,工作与身边的私单,要用到内容管理的东西CMS,B/S数据库管理软件 所以CRUD还是要继续,Java 或 Android放在兴趣爱好的位置吧。
[b]问题补充:[/b]
TO:魔 VII
感谢魔力猫咪一天来的热心而无私的回复。很多句话都一针见血地说到了我身上的问题,“我感觉你这几年没找到适合自己的技术发展路线,到处乱撞”;也分享了你的开发经验,“业务变更的修改考验的是你的项目组织能力和面向对象设计能力”,“开发不是做几个数据库表,然后直接CRUD就够了的”;提出建议:“与其累死累活做这种谁都不高兴的软件,不如尝试一下信息化咨询实施方面”。

你提到的两本书《走出软件作坊》、《软件随想录》,已经从CSDN下过来,正在看。这张问答网页我存到了我的硬盘了。虽然你自称不是leader,但程序员不单是技术而有了自己思考认识,足以让我小小的崇拜一下,期待以后我技术长进了再与你讨教切磋。再次感谢魔的启示,最后奉最我全部可用分20分。

分页、序号、表单验证这些无论什么管理系统也是不能省的。这不叫什么细节需求。如果这些都没有,恐怕系统连粗制滥造都算不上,只能是个用来学习的例子程序。
我去网络上搜索了一下,一些进销存软件甚至卖到了50多元(Joyo价格)。就算买10家的来试用,结果发现都不合适也比你的便宜。再考虑到因为项目拖延搁浅引发的经济损失,真是不如花几万买现成的。
我不清楚你做了多久应用软件开发了。不过从你现在开发出来的东西看,你现在还不是一个合格的应用程序员,顶多算编程爱好者。建议你好好学习一下,最好作为普通程序员参加几个实际软件开发,再来说是不是有能力去接这类项目。特别是“尝试新技术”这点要不得,拿别人当试验品呢。如果没有足够把握,千万不要胡乱使用自己不熟悉的技术。
你还是尽量帮他们试用一些国内知名的管理软件开发企业的成熟产品(很多都有试用版下载或者可以联系获得试用版),看哪些符合其需求。谈判买下一个合适的现成产品。

其实是否企业级应用并没有特别的定义。基本上所有的JavaWeb开发只要和企业业务有关都可以算企业开发。
无论是Java还是Php,开发一个基本的进销存系统都应该不困难。你应该好好思考一下,看系统的问题在哪里?到底是哪里架构设计有问题。不找到真正的问题所在,你拿什么语言也开发不好。

业务不熟那就搞清楚了再写。业务变更的修改考验的是你的项目组织能力和面向对象设计能力。
要判断一个应用是哪种程序开发的有时候不是那么好判断的。有一种技术叫URLReWrite,可以把一个地址格式转换成另外一种。其实很多我们看到的网站其核心都是Java。
即使网页时PHP编写的,也可能PHP需要去调用Java处理业务。
Java确实在信息管理方面应用比较多。PHP相对在企业开发方面比较劣势,多用于前台编写。
你要做的就是停下来。好好梳理一下已知需求和项目目标。然后仔细判断应该使用的技术。我觉得你现在应该注重的是需求分析能力和面向对象设计能力,而不是想找某种容易的语言。
而且现在的快速开发框架对使用者本身的要求并不低。Ruby的Rails,Grooy的Grails等虽然开发快,但是如果你编程能力不足的话,留下的麻烦也绝对小不了。

我最怕的就是来人说“最简单的够用就可以”这句话。基本上听到这句话,你要是以为真的简单,那么就等着掉坑里头吧。客户说得简单是对他们操作简单,对开发可一点也不简单。
考虑到这些老板的情况,与其定制软件,不如去软件店买个进销存软件实惠。价格可以控制在几千元,产品成熟,提供基本的售后服务。
开发不是做几个数据库表,然后直接CRUD就够了的。而且对于项目管理的要求也很高。建议你买本敏捷开发方面的书,看一下如何进行这种需求模糊的开发。
我不建议这些初步信息化的企业定制软件。定制软件价格远高于购买品,而且失败的风险并不比买来软件不合用小,而且损失更大。购买的进销存软件也就几千到几万,但是软件开发失败可能是几十万的损失。
一个开发团队,程序员、测试、美工等加在一起,怎么也得7-8个人。就算平均工资5000,还不算各种保险,一个月就是4W。一个项目怎么也得2-3个月,这是最少的。那么就是12W。还不算日后的维护成本。软件公司除了程序员,各种行政人员、老板的利润等等都要钱。20-30W的项目根本不赚钱。如果项目延期,那么开发成本涨几倍都不新鲜。个人开发虽然成本比公司的低,但是我觉得你这种项目让我来,怎么也得3个月5W,延期还要增加。
我建议你与其累死累活做这种谁都不高兴的软件,不如尝试一下信息化咨询实施方面。协助他们部署现成的进销存软件,收取咨询服务费。信息化是一个系统工程,不是买了软件安上就是信息化了。不然ERP失败的怎么这么多。除了直接卖软件,提供信息化实施服务的利润也不小。

建议你看看《走出软件作坊》、《软件随想录》等书籍。从你最后的留言看,你应该是一家为小企业建设网站的小公司。为什么利润低、企业建完了连维护没有呢?《走出软件作坊》里面有专门一章就说了你们这种情况。企业做完网站了,有用吗?有人通过网站来买东西吗?没有。人家当然不会再给你钱了。这样人家还不如在淘宝开网店呢。
这里我无法给出你太详细的建议。一个是不了解情况,还有就是没咨询费(呵呵)。我建议是除非你们的开发水平有质的提高,不建议再接这类开发业务。不然明年连域名费也收不到。
你的着眼点应该是如何能够给企业削减成本或者带来效益。比如网络推广、代理知名管理软件并提供本地技术支持、企业员工信息技术培训等等。只要对方确实省了钱,或者赚到了钱,那么你的收入也就会增加了。
千万别想着控制对方,我看你似乎有点这个意思(“域名在手上”这个意思可有些危险,其实既然对方赚不到钱,那么域名丢了也没什么,别说还有可能通过法律手段从你那里拿走)。这很容易把你们建立起来的信任关系彻底破坏。

ror

没有所谓适合的万能语言。汇编和C是开发操作系统内核的最佳语言。函数化语言在并发处理方面独树一帜。Fortran至今仍然在科学计算领域发挥作用。COBOL作为商业语言,很多银行的核心业务都是COBOL编写完成的,到今天为止已经跑了几十年。所以并没有所谓的万能语言存在。
你要写的东西不同,那么适合的语言也不一样。应用系统开发现在主流的是两大体系。Sun代表的Java体系和Microsoft代表的NET体系。如果你打算做应用系统开发,则应该在这两个体系中选择其一进行深入研究。如果想参与嵌入式开发,则汇编、C、Java是主流。
我感觉你这几年没找到适合自己的技术发展路线,到处乱撞。涉猎广很好,但是至少要有一门精。希望你好好思考一下自己的职业发展道路。《软件随想录》这本书不错,推荐你看一下。作者对那些打算进入软件开发领域的新人的告诫还是很靠谱的。
对于我职业的你猜错了。我也只是个普通的程序员,还没能领导别人,最多能领导我家的猫。