真的不用写代码了?大家发表一下见解。 (10分)

  • 主题发起人 主题发起人 shaoyy
  • 开始时间 开始时间
S

shaoyy

Unregistered / Unconfirmed
GUEST, unregistred user!
我一个朋友的公司,他们用java,但听说他们已经做到了不用直接写代码了,一般是用PowerDesigner将数据库和类设计好,然后通过一个工具直接产生java代码,所以他们的程序员一般是不用懂java的,呵呵,听起来真夸张?果真如此,那大家还这么拼命学、考什么认证?
这个是他们的产品例子: http://202.100.108.25:8080
user: aa
pass: aa
 
还有谁所在的公司程序员是不用写代码的?或者说是用不着程序员也可以做软件的?说来听听:)
 
1.aa登陆不了
2.合理利用pd以及一些 xml数据绑顶工具等可以帮你生成大量标准的javabean文件。
可以减轻大量的负担,但是并不是说就需要写代码了。
"不用直接写代码"不是"不用写代码"。
合理利用工具来生成一些标准的代码是可以减少工作量的。
但不上说就没有工作量了。
 
有啊,呵呵,用鼠标点几下也可以立即好了,
那是因为想前辈作了Delphi样的工具,所以少了很多打字功夫。
要你自己的东西,估计还得打字的。
 
经典,以后的程序员都不必学打字了,点几下鼠标即可以了,^_^
 
估计以后的程序员连鼠标都不用点了,想想就可以了,所想即所得,脑袋里插根芯片,现想现存,多方便,建议各位DFW往这方面攻关,发财大大地!!![:D]
 
如果能真的做到不写代码未尝不是一件好事?如果完全可以借助设计工具将数据库和对象的的实现细节及继承关系设计出来,然后产生代码,不仅提高工作效率,而且可以避免繁锁的编码工作可能产生的人为错误,对软件的质量保证也很有意义,更重要的是程序员不用再去费心钻研什么语言,只要学习面向对象编程的理念就行了,而这个却是通用的,意义深远!
 
不可能完全这样的,只能在某个方面可以做到,这个不用担忧。但是不写代码不代表就是简单的事情了。
 
本人一直在很认真的探讨这个实现的可能性,至少是在特定应用领域实现的可能性,当然一直没有真正实现,本人一直用delphi(用了5年多),现在的系统最多也只是用一些模板库做继承之类的方法,确实也可以达到一些效果,如应用层类的编写代码量很少,而且对程序员的要求不高,也不需要看别人的代码,但是还是要编码的,突然听朋友说他实现了不用编码,甚至说他们公司的程序员都可以不用懂java,我很惊讶,一直半信半疑,因为我对java研究不深,故来此问问各位,而且我已经决定为此事这两天就去几千里之外的朋友的公司拜访一趟:)
 
也许是你的朋友吹牛呢,呵呵
 
代码是程序的灵魂!不用写代码只能说明做出来的东西是没有灵魂的行尸走肉!
 
我觉得楼主对这个问题也太敏感了吧!
我想我一定会继续,而且更努力的写代码,写好的代码,写可以生产代码的代码。也更希望“不用写代码”快点普及起来,这样,那我这些“能生产代码的代码”就是上帝了。我们现在是通过D或其他开发工具来写代码,那么如果D是你写的,那你还不是程序员的上帝吗?
呵呵!我在这里撒野,希望其他DFW能理解我在说什么!
 
而且我追求的"不用写代码"是"完全不用写代码",即不管产生的代码效率如何,至少能保证逻辑的正确性,就像编译器将你的代码翻译成机器码一样,不用人去干预的,可不是翻译了一部分再人工去修改的,否则意义就不大了,当然我所知道在delphi下还没有这样的工具,如果是产生一部分代码,我认为除非是实现一个特定的、通用的功能(如编写一个ocx等),还没有工具能产生高质量、不用修改的代码,否则如果可能产生所谓的"标准代码"然后手工去修改的话,我认为还不如自己写好了,因为:
1.自动产生的代码一般是很难读的,就像编译程序产生的汇编一样,虽然逻辑正确,但要人去读,比什么还难受(所幸我们并不需要这样做)。而且自动产生的代码中,变量的命名肯定是没有意义的,这样的代码如果要手工去修改,是很恐怖的。
2.算法和数据结构的设计,肯定不如手工写的好。
所以自动产生代码只有完全不要人的干预,才有革命性的意义,就像编译器将我们从汇编时代解放出来一样。
 
来自:一条大鱼, 时间:2004-6-8 0:39:43, ID:2650848
代码是程序的灵魂!不用写代码只能说明做出来的东西是没有灵魂的行尸走肉!
---------------------------------------------------------------------
软件最终目的是为了应用,所以我认为理念比编码技术更重要,如果设计工具强大到能直接作为软件思想实现的载体,那么代码将不再重要(甚至可能会消亡),设计就是灵魂了,就好像砖头不再是大厦的灵魂,图纸才是,是不是这样?
 
to shaoyy:
给你看个根据schema自动生成的代码:
/*
* This class was automatically generated with
* <a href="http://castor.exolab.org">Castor 0.9.4</a>, using an
* XML Schema.
* $Id$
*/
package com.lnboy.gbinfo;
//---------------------------------/
//- Imported classes and packages -/
//---------------------------------/
import java.io.IOException;
import java.io.Reader;
import java.io.Serializable;
import java.io.Writer;
import org.exolab.castor.xml.*;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.ValidationException;
import org.xml.sax.ContentHandler;
/**
*
*
* @version $Revision$ $Date$
**/
public class Guestnote implements java.io.Serializable {

//--------------------------/
//- Class/Member Variables -/
//--------------------------/
private int _noteid;
/**
* keeps track of state for field: _noteid
**/
private boolean _has_noteid;
private java.lang.String _username;
private java.lang.String _email;
private java.lang.String _content;
private java.lang.String _ip;
private long _time;
/**
* keeps track of state for field: _time
**/
private boolean _has_time;
private java.lang.String _reply;

//----------------/
//- Constructors -/
//----------------/
public Guestnote() {
super();
} //-- com.zzjz.gbinfo.Guestnote()

//-----------/
//- Methods -/
//-----------/
/**
* Returns the value of field 'content'.
*
* @return the value of field 'content'.
**/
public java.lang.String getContent()
{
return this._content;
} //-- java.lang.String getContent()
/**
* Returns the value of field 'email'.
*
* @return the value of field 'email'.
**/
public java.lang.String getEmail()
{
return this._email;
} //-- java.lang.String getEmail()
/**
* Returns the value of field 'ip'.
*
* @return the value of field 'ip'.
**/
public java.lang.String getIp()
{
return this._ip;
} //-- java.lang.String getIp()
/**
* Returns the value of field 'noteid'.
*
* @return the value of field 'noteid'.
**/
public int getNoteid()
{
return this._noteid;
} //-- int getNoteid()
/**
* Returns the value of field 'reply'.
*
* @return the value of field 'reply'.
**/
public java.lang.String getReply()
{
return this._reply;
} //-- java.lang.String getReply()
/**
* Returns the value of field 'time'.
*
* @return the value of field 'time'.
**/
public long getTime()
{
return this._time;
} //-- long getTime()
/**
* Returns the value of field 'username'.
*
* @return the value of field 'username'.
**/
public java.lang.String getUsername()
{
return this._username;
} //-- java.lang.String getUsername()
/**
**/
public boolean hasNoteid()
{
return this._has_noteid;
} //-- boolean hasNoteid()
/**
**/
public boolean hasTime()
{
return this._has_time;
} //-- boolean hasTime()
/**
**/
public boolean isValid()
{
try {
validate();
}
catch (org.exolab.castor.xml.ValidationException vex) {
return false;
}
return true;
} //-- boolean isValid()
/**
*
*
* @param out
**/
public void marshal(java.io.Writer out)
throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
{

Marshaller.marshal(this, out);
} //-- void marshal(java.io.Writer)
/**
*
*
* @param handler
**/
public void marshal(org.xml.sax.ContentHandler handler)
throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
{

Marshaller.marshal(this, handler);
} //-- void marshal(org.xml.sax.ContentHandler)
/**
* Sets the value of field 'content'.
*
* @param content the value of field 'content'.
**/
public void setContent(java.lang.String content)
{
this._content = content;
} //-- void setContent(java.lang.String)
/**
* Sets the value of field 'email'.
*
* @param email the value of field 'email'.
**/
public void setEmail(java.lang.String email)
{
this._email = email;
} //-- void setEmail(java.lang.String)
/**
* Sets the value of field 'ip'.
*
* @param ip the value of field 'ip'.
**/
public void setIp(java.lang.String ip)
{
this._ip = ip;
} //-- void setIp(java.lang.String)
/**
* Sets the value of field 'noteid'.
*
* @param noteid the value of field 'noteid'.
**/
public void setNoteid(int noteid)
{
this._noteid = noteid;
this._has_noteid = true;
} //-- void setNoteid(int)
/**
* Sets the value of field 'reply'.
*
* @param reply the value of field 'reply'.
**/
public void setReply(java.lang.String reply)
{
this._reply = reply;
} //-- void setReply(java.lang.String)
/**
* Sets the value of field 'time'.
*
* @param time the value of field 'time'.
**/
public void setTime(long time)
{
this._time = time;
this._has_time = true;
} //-- void setTime(long)
/**
* Sets the value of field 'username'.
*
* @param username the value of field 'username'.
**/
public void setUsername(java.lang.String username)
{
this._username = username;
} //-- void setUsername(java.lang.String)
/**
*
*
* @param reader
**/
public static com.zzjz.gbinfo.Guestnote unmarshal(java.io.Reader reader)
throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
{
return (com.zzjz.gbinfo.Guestnote) Unmarshaller.unmarshal(com.zzjz.gbinfo.Guestnote.class, reader);
} //-- com.zzjz.gbinfo.Guestnote unmarshal(java.io.Reader)
/**
**/
public void validate()
throws org.exolab.castor.xml.ValidationException
{
org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
validator.validate(this);
} //-- void validate()
}
 
其实完全不用写代码是不可能的,但是框架能解决90%的问题,大部分代码可以生成(当然事先还是要写框架的),java在这方面确实有很大优势,我现在在日本这边做些项目,很多设计的日本人就是完全不懂java的,用excel写些表格,比如实体bean,就完全不写一个字的代码,在excel里面定义好表信息,生成java文件,再为find写sql,就可以deploy了。
。楼上的这个就是用工具生成的,和我现在这个项目用的一样。
当然,自动生成的东西功能总是受限制的。但是如果有50%的东西能用上,特殊的再特殊处理的话,开发效率能提高很多。
 
Shaoyy:
还有谁所在的公司程序员是不用写代码的?或者说是用不着程序员也可以做软件的?说来听听:)
`````````````````````````````````````````````````````````````````````````````
还别说,俺就遇到过一个完全不懂程序的人居然能在一周内能编一套软件出来的,呵呵.
说起来那是去年的事了,俺从新兴集团辞职到了贵阳,想去一家贵州最大的软件公司求职,初次见到公司老总:赵筑云(中国软件协会会员,贵州财务软件协会副会长等等一大堆的头衔),他跟俺聊了一会说要看俺编的东西。心中暗喜,幸好俺准备充分,把我在新兴集团工作四年多编的东西全部刻成光盘了。
待俺把东西装在他的机子上并演示后他觉得很满意,说要看看代码。俺打开了,他一看居然晕了,说你这是用什么东西编的?俺更晕,小心的说:Delphi!回头他说不看了,于是乎接着聊。
赵云:俺们公司的程序员是用FoxPro或是VFP开发软件,如果你要加入的话无法组成一个团队,这样开发周期就会很慢,可能不能够按时完成项目(俺想,有道理,默认)。
赵再云:俺们公司的人的生产效率极高,一个完全不懂程序或语言的人在一周内能开发两套系统,你是不是觉得不可思议?(俺真的是觉得不可思议了,只能再次默认)
赵又云:俺们公司的人都在忙着开发,你不能与俺们公司的开发人员组成团队,俺看你也有一定的基础,这样吧,你来公司搞售后培训吧!(俺想,俺真是没用呀,不能与人家配合,不能在一周内开发两套系统,还是走人的好,少在这个地界丢人了)
俺毕恭毕敬向赵总说:俺能力太差,还是走人了:(((
 
纳兰初现兄,你好!很高兴在此遇见你,我是源码空间里的"我是远洋",做AC Report的那个:) 呵呵,你应该已经创业了吧?不知公司发展怎样?
 
看了各位发言,心下又明白许多,在此谢过!
我现在西安,今天和朋友公司的系统架构师交流了一天,并看了详细的演示,初步总结如下:
1.利用他们的框架,确实可以做到只要设计表结构、表关系、和表的附加属性就可以生成所有的输入输出界面,不用写一行代码,但是业务逻辑的Class还是得写,不过这样确实省下了很多事情,他们公司确实就有几个不懂java的但却可以做设计。
2.这个框架是他们自己开发,基于PowerDesigner的文件,主要是在PowerDesigner中表的定义comment属性中加入了一些特定格式的"描述",通过这些描述自动产生全部输入输出界面,不用写代码。
3.产生的界面的样式、输入方式、查询等全部在设计时以他们定义的描述方式来控制,不用写代码。
 
后退
顶部