[问题] [请求] 有没有搞VB.NET的?

RPGPlayer

知名会员
注册
2003-03-22
消息
148
荣誉分数
2
声望点数
128
作完了一个vb.net项目, 看了几本书:
Martin Fowler:
uml distilled,Refactoring,Analysis Parttern

Applying UML and Pattern
觉得有点意思, 很想找人一块侃侃.
especially in OO and UML.
哪位有兴趣, 请给我来信.
 
最初由 RPGPlayer 发布
作完了一个vb.net项目, 看了几本书:
Martin Fowler:
uml distilled,Refactoring,Analysis Parttern

Applying UML and Pattern
觉得有点意思, 很想找人一块侃侃.
especially in OO and UML.
哪位有兴趣, 请给我来信.

Are you working as RPG programmer now?
So you want change to .net?
 
你是怎么考虑的? 你会转向OO吗?

不知道你说的的RPG programmer, 是AS/400上面方头方脑的RPG语言呢, 还是Role Play Games,
 me Neither

我只是转换到Object-Oriented之后, 有很多乱七八糟感觉,想法和问题, 很想找个跟我差不多情况的人, 一起聊一下.


原先,写了好多年的程序,包括大学里教授教的,都是是结构式的程序设计思维(structured design and implement).,瀑布式
什么事情都是1,2,3,4,5..摆出来.先把清楚的理解的需求,都先全部实现了.不知道,不清楚,不理解的,设置一个空函数放在哪儿. 回头再1,2,3,4,5,进行拆分.

OO 就不同了. 第一系统设计要求是由有几个Class组成的, 她的责任是什么, (我对责任 accountability or responsibility, 这两个单词特别感兴趣) 和其他的class 的关系是什么.
就像管理小公司和大公司的区别:
小公司的管理: 告诉每个人 1,2,3,4,5详细的操作流程就行了. 大的公司的管理实现是通过个责任主体的划分和责任主体之间关系的确定来实现的.

但是,经多年的结构化程序设计的熏陶, 项目作完了. 回头看看, 按照Martin Fowler的Refactoring 所指程序设计的坏味道, 程序里面全有.

可是项目也完了, 客户不会为改变这些程序设计的坏味道而付款的。对他来讲,功能已经实现, 满足了要求就可以了.

为了转OO 真是花了太多的时间, 很有意思, 但是并不会在短时间内帮助你.

你是怎么考虑的? 你会转向OO吗?
 
OO is concept, not a language.
OO is a good concept, C++ is not a good OO language.

Smalltalk is more likely a good OO language.

On the other hand, as you already experenced, a good
C programer can also do good OO/Modula programming.
 
闲者也实闲着, 跟您掐2句

最初由 shusheng 发布
OO is concept, not a language.
OO is a good concept, C++ is not a good OO language.

Smalltalk is more likely a good OO language.

On the other hand, as you already experenced, a good
C programer can also do good OO/Modula programming.

完全同意C++不是好的OO语言,太晦涩。smalltalk是OO的老祖宗, 双手同意

但是不同意你所讲的C会成为 OO/Modula programming语言, 您所说的c是指什么C? 你指得是那个方面呢?多态吗(polymorphism)? overload?

C的其它方面都和OO沾不上边. 非常欢迎您举例反驳 :)

这也就是,Java出现的原因(支持web和多平台是另外的话题), 就是来解决ANSI C 过于面向底层,抽象能力太差;C++多根继承,晦涩难懂的问题。

也是C#/VB.NET出现的原因,为了赶超Java. 微软向来是如此的,从来不担心别人说他没有创造力,只会抄袭。
(C -> C++ -> Java ->C#/VB.NET)

另外, 您说的OO is concept, not a language, 我也有异议。OO应该说不仅仅是一个概念, 而是一个在编程语言中被实现的概念:特性feature.


今天我吃多了, 请多包涵:)
 
最初由 RPGPlayer 发布
:(

Hi Rocket Propelled Prenade :lol2: ,

Just kidding. I agree with shusheng's point. My working experience has been structural -> OO -> structural -> OO, not entirely out of my choce :) My personal observation and feeling is that

#1 If you are a good programmer, you can do both well, regardless structural or OO.

#2 If you are a bad one, even though you will write bad code in both cases, you make less damage in OO beause of access restriction and some features that are typically available in OO langauges, such as garbage collector where you almost worry free from memory corruption...
 
Re: 你是怎么考虑的? 你会转向OO吗?

最初由 RPGPlayer 发布
不知道你说的的RPG programmer, 是AS/400上面方头方脑的RPG语言呢, 还是Role Play Games,
Yes,I mean RPG Programmer on As/400 platform,because the RPGIV is running on As/400.
Because your name is RPGplayer, so I guess you are RPG programmer before, I was programming RPG before. Now I am changing to OO.
 me Neither

我只是转换到Object-Oriented之后, 有很多乱七八糟感觉,想法和问题, 很想找个跟我差不多情况的人, 一起聊一下.


原先,写了好多年的程序,包括大学里教授教的,都是是结构式的程序设计思维(structured design and implement).,瀑布式
什么事情都是1,2,3,4,5..摆出来.先把清楚的理解的需求,都先全部实现了.不知道,不清楚,不理解的,设置一个空函数放在哪儿. 回头再1,2,3,4,5,进行拆分.

OO 就不同了. 第一系统设计要求是由有几个Class组成的, 她的责任是什么, (我对责任 accountability or responsibility, 这两个单词特别感兴趣) 和其他的class 的关系是什么.
就像管理小公司和大公司的区别:
小公司的管理: 告诉每个人 1,2,3,4,5详细的操作流程就行了. 大的公司的管理实现是通过个责任主体的划分和责任主体之间关系的确定来实现的.

但是,经多年的结构化程序设计的熏陶, 项目作完了. 回头看看, 按照Martin Fowler的Refactoring 所指程序设计的坏味道, 程序里面全有.

可是项目也完了, 客户不会为改变这些程序设计的坏味道而付款的。对他来讲,功能已经实现, 满足了要求就可以了.

为了转OO 真是花了太多的时间, 很有意思, 但是并不会在短时间内帮助你.

你是怎么考虑的? 你会转向OO吗?
 
这个帖子适合移到“电脑技术”去。

RPGPlayer,我的意思是说,OO是设计思想,其实与直接用那一种
语言没有一定的关系。好的程序员,一样可以用C写出OO思想的程序。
坏的程序员,一样可以将C++的程序弄得一塌糊涂:)

另外,C++/Java/C#所带来的overhead,在Desktop环境中或
许问题不大,在一些追求时效的系统中却是不可接受的。在那样的
系统中,C仍然是基本开发语言。
 
非常感谢各位回贴, 在Ottawa, 感觉最大的缺憾,就是, 没有人和我磨牙. :(

startwindow: 没有任何不尊重的意思. 多年以前, 给国内银行保险公司, 蜻蜓点水的搞过RPG. 你是怎么转换到oo呢, 有空就聊聊. 看到什么不和心意的言论, 该批判就批判. :)

shusheng: 完全同意你关于C的观点. 要作嵌入, 实时系统, 就要用ANSI C. 估计在OTTAWA, 对ANSI C的需求要大于C++,VC, C#之类. 我前段时间, 无聊得很, 啃过Linux's Kernel. 够高效简明的. 简直不是给人看的. :)

看了Broken Arrow的帖子, 很有启发, 于是就今天再乱侃一篇:


马斯洛的五个需求层次和面向对象
(有点关公战秦琼的味道吧)


根据心理学家马斯洛需求层次理论, 人的需求层次, 从低到高分为5各层次:生理需求, 生理需求, 社会需求, 尊重需求和自我实现需求.

这儿乱插一句.

移民心理悖论:
我们在国内已经满足了自己的第一层次,生理需求(衣、食、住、行等),
移民目的本是追求第二个需求层次,生理需求(安全保障的需求)
但是加拿大政府却让你继续在生理需求层次再次努力
这让我们心里很不平衡. :)


我把软件设计代码要求也按照需求层次的方式, 进行嫁接式的分级:

1.基本需求: 完成客户的需求就可以了. 管黑猫白猫的, 客户不懂, 也不想懂. 干好了, 给钱就利索,软件开发的原始社会. 这相当于人生理需求.

2.安全需求: 不能出错误. 黑箱,白箱,单元测试, CMM之类都是这个目的

3.相互连接需求: 组件开发, 不管你什么语言作的, 你遵守交通规则: web service/SOAP/XML, 微软的Active X 之类的标准. 相当于人的社会需求层次问题.

4.可升级, 可复用的需求: 面向对象OO, 尊重需求和自我实现.

OO 是在需求的最高层次. 这是OO的魅力, 也是问题.

如果给别人打工作, OO 是不会考虑, 除非是项目要求.
如果自己作项目, OO 应该是首选. 我现在杂七杂八的写了一些类库, 自我感觉良好, 有作用. 你自己作Class Library吗?

另外,推荐一本书, Martin Fowler:Refactoring,
特别适合有项目经验, 正在转向OO的程序员.
书里面一半以上的内容都是代码, 给你演示,如何将从味道很坏的代码, 变为干净漂亮,责任清楚的代码.
虽然以JAVA为例, 不太影响其他语言程序员的理解.

我看完之后, 特别有一种欲望, 希望有时间能够, 重构一下自己小Class Library. 甚至在读Linux 4.22 kernel时, 也想给它,来下重构.


欢迎新鲜的西红柿和鸡蛋!
 
hehe, you really have some free time at your hands, eh? :) I guess I am the same too :) any how, here is my point...

To the contrary, I believe exceeding customer's expectation by anticipating and guiding is the highest achievement, where you correctly capture customer's requirement (remember sometimes customers think they know what they want), design your software to not only meet the current requirement but also anticipate the potential features, so that your code can be easily upgrade towards those features. There are only a limited number of directions a software can be scaled/upgraded, they are bound by the original design of your code, or library or framework, or any name you want to call it. After all, most of us are not writing general purpose libraries, I guess they are called built-in library :)

User friendly and ease of trouble shooting is next.

The minimum is well QAed which includes no critical bug and, of ocourse, interoperability. There is no such thing as bug free software. Black box or white box just the means of detecting bugs, but not the weight to judge whether it is critical bug or not, although black box bugs tends to be more serious.

OO and its associated programming languages are just tools among many other tools. Although at application level, OO is probably better in most cases. Ultimately, it is job who dictates tool, not the other way around. There is simply no one-fit-all solution.

hmm, another half hour went by...

Just read my comments again before I post it, it does sound like I try to 教导 someone。 If you feel the same, I appologize first. I don't mean to be that way, just my opinion to be shared with you...



最初由 RPGPlayer 发布
非常感谢各位回贴, 在Ottawa, 感觉最大的缺憾,就是, 没有人和我磨牙. :(

startwindow: 没有任何不尊重的意思. 多年以前, 给国内银行保险公司, 蜻蜓点水的搞过RPG. 你是怎么转换到oo呢, 有空就聊聊. 看到什么不和心意的言论, 该批判就批判. :)

shusheng: 完全同意你关于C的观点. 要作嵌入, 实时系统, 就要用ANSI C. 估计在OTTAWA, 对ANSI C的需求要大于C++,VC, C#之类. 我前段时间, 无聊得很, 啃过Linux's Kernel. 够高效简明的. 简直不是给人看的. :)

看了Broken Arrow的帖子, 很有启发, 于是就今天再乱侃一篇:


马斯洛的五个需求层次和面向对象
(有点关公战秦琼的味道吧)


根据心理学家马斯洛需求层次理论, 人的需求层次, 从低到高分为5各层次:生理需求, 生理需求, 社会需求, 尊重需求和自我实现需求.

这儿乱插一句.

移民心理悖论:
我们在国内已经满足了自己的第一层次,生理需求(衣、食、住、行等),
移民目的本是追求第二个需求层次,生理需求(安全保障的需求)
但是加拿大政府却让你继续在生理需求层次再次努力
这让我们心里很不平衡. :)


我把软件设计代码要求也按照需求层次的方式, 进行嫁接式的分级:

1.基本需求: 完成客户的需求就可以了. 管黑猫白猫的, 客户不懂, 也不想懂. 干好了, 给钱就利索,软件开发的原始社会. 这相当于人生理需求.

2.安全需求: 不能出错误. 黑箱,白箱,单元测试, CMM之类都是这个目的

3.相互连接需求: 组件开发, 不管你什么语言作的, 你遵守交通规则: web service/SOAP/XML, 微软的Active X 之类的标准. 相当于人的社会需求层次问题.

4.可升级, 可复用的需求: 面向对象OO, 尊重需求和自我实现.

OO 是在需求的最高层次. 这是OO的魅力, 也是问题.

如果给别人打工作, OO 是不会考虑, 除非是项目要求.
如果自己作项目, OO 应该是首选. 我现在杂七杂八的写了一些类库, 自我感觉良好, 有作用. 你自己作Class Library吗?

另外,推荐一本书, Martin Fowler:Refactoring,
特别适合有项目经验, 正在转向OO的程序员.
书里面一半以上的内容都是代码, 给你演示,如何将从味道很坏的代码, 变为干净漂亮,责任清楚的代码.
虽然以JAVA为例, 不太影响其他语言程序员的理解.

我看完之后, 特别有一种欲望, 希望有时间能够, 重构一下自己小Class Library. 甚至在读Linux 4.22 kernel时, 也想给它,来下重构.


欢迎新鲜的西红柿和鸡蛋!
 
充分同意楼上所述。理解用户的要求是最难的一步。合理
分解组织模块是第二重要的。所以以前也有用OO进行软件
工程的,用户的说明书里找关键字,名词是class,动词
是method ... :)

另外,我对代码重复利用有疑问。在实际应用中,真正有
多少旧代码可以拿来就用的? 往往是多少要做一些修正。

其实我觉得,现在的软件,越来越追求“社会需求”。
通过模块、进程间的协议通讯来实现系统功能是大趋势。
 
后退
顶部