刚进了一家公司,整日在违反了各种设计原则的代码中奋斗,郁闷,散分!

icecloud 2003-12-08 11:20:53
完全没有注释的文档
违反OCP等原则
没有使用接口
业务逻辑直接写在servlet中

最惨的是我还要修改。。
没办法,刚来当小崔阿
...全文
62 117 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
117 条回复
切换为时间正序
请发表友善的回复…
发表回复
icecloud 2003-12-13
  • 打赏
  • 举报
回复
to jokerjava(冷血)
我就在留言里面随手写的,do是举个例子!

好了结贴了~~ 一人2块钱
aftarms 2003-12-12
  • 打赏
  • 举报
回复
我是新手,你们说的不太懂,但我想接分:)
hocus 2003-12-12
  • 打赏
  • 举报
回复
在以前的公司
拿到份国外公司的源码
完全使用servlet写的b/s应用,支持国际化,多数据库,
看得出来经过详细设计,因为继承关系很复杂
整个程序三百多个类,70多m,148个表,
要进行改造,我看的痛不欲生
hsupo 2003-12-12
  • 打赏
  • 举报
回复
XXX!很XXX!
这样的烂公司!
lu8088 2003-12-12
  • 打赏
  • 举报
回复
up,同情。
benwang6 2003-12-12
  • 打赏
  • 举报
回复
int id = (new Integer(request.getParameter("id")!=null && !"".equals(request.getParameter("id"))?request.getParameter("id"):"0")).intValue();

icecloud(冰云) 好强阿,哈哈,
谁来维护你的代码肯定会崩溃的,
哈哈哈,太有意思了
jokerjava 2003-12-12
  • 打赏
  • 举报
回复
refactoring之后是:
private boolean isParameterValidate(HttpServletRequest request, String param){
return request.getParameter(param)!=null&&!"".equals(request.getParameter(param);
}

private int getIntValue(HttpServletRequest request, String param){
return isParameterValidate(request,param)?
Integer.parseInt(request.getParameter(param))
: 0;
}


public void do(){
int id = getIntValue(request,"id");
}

这段代码也很危险
Integer.parseInt 方法是要抛出异常的
do可是关键字呦 楼主也有随手命名的习惯
凋零的老树 2003-12-12
  • 打赏
  • 举报
回复
我觉得也没什么啊?写代码不是为了给你看,也不是写代码而写代码,最终还是为了挣钱,挣钱要考虑的因素跟写好代码要考虑的因素不一样,挣钱要注意成本要低,时间要短,变化要适用客户任何的需求,所以很多的时候我们自己也会做一些急功近利的事情
比如:不写注释
axer 2003-12-12
  • 打赏
  • 举报
回复
靠.全TMD一个操行
zawx 2003-12-12
  • 打赏
  • 举报
回复
up
czzw 2003-12-12
  • 打赏
  • 举报
回复
同感
dailindl 2003-12-12
  • 打赏
  • 举报
回复
为了糊口,忍了吧
Spectrum 2003-12-11
  • 打赏
  • 举报
回复
:)
zuinbdename 2003-12-11
  • 打赏
  • 举报
回复
看了大家的讨论真是有意思。
给了我这还在念书的人很大启发啊
现在正学CMM 据说东软和中软做得不错
他们该不会也是应付了事吧?
qstqstqst 2003-12-11
  • 打赏
  • 举报
回复
icecloud 2003-12-11
  • 打赏
  • 举报
回复
业务分析人员和编码设计人员要分开啊
老土豆T 2003-12-11
  • 打赏
  • 举报
回复
很多公司都这样(包括一些所谓的知名公司)

需求都做的复杂,业务也研究的很透彻。。。可真正一编码,都是又大又乱,做了一半,程序员了解的业务知识就走人了,混到别的公司,人家只管你做过什么,知道什么,,才不会看你以前写的代码的。

我也不晓得 iso9000 是怎么被通过,通过认证总归是有办法的。
dmhorse 2003-12-11
  • 打赏
  • 举报
回复
祝贺,又可自作主张了
grgh2000 2003-12-11
  • 打赏
  • 举报
回复
完全没有注释的文档
违反OCP等原则
没有使用接口
业务逻辑直接写在JSP中,更惨...
看看(我头晕了)这个只是一个类中的一个"小"方法:
public void process(HttpServletRequest request){
int curpage = 1;

String queryStr;
String sPagesize ;
long maxRecords;
long limitRecords;
DataPackage dp;

formName = request.getParameter("formName");
String reQuery = request.getParameter("reQuery");
String curpageStr = request.getParameter("curpage");

String condition =getValue(request,"condition");
String orderby = getValue(request,"orderby");
String groupby = getValue(request,"groupby");

seqName = PropertyUtil.getCNProperty(formName+".seqName");
table = PropertyUtil.getCNProperty(formName+".table");
qTable = PropertyUtil.getCNProperty(formName+".qTable");
String fields = PropertyUtil.getCNProperty(formName+".fields");
String pks = PropertyUtil.getCNProperty(formName+".pks");
orderby = (orderby==null)?PropertyUtil.getCNProperty(formName+".orderby"):orderby;
condition = (condition==null)?PropertyUtil.getCNProperty(formName+".condition"):condition;
groupby=(groupby==null)?"":groupby;

String isContinue = request.getParameter("isContinue");

reQuery=(reQuery==null)?"false":reQuery;
qTable = (qTable==null)?table:qTable;
condition=(condition==null||condition.equals(""))?"1=1":condition;
orderby=(orderby==null)?"":"order by "+orderby;
isContinue = (isContinue==null)?"false":isContinue;

sPagesize = request.getParameter("pagesize");
if(sPagesize==null)
sPagesize = (String)request.getAttribute("pagesize");
if(sPagesize==null)
sPagesize = PropertyUtil.getCNProperty("query.global.pagesize");
String lRecords = PropertyUtil.getCNProperty("query.global.limitRecords");
String mRecords = PropertyUtil.getCNProperty("query.global.maxRecords");
lRecords = (lRecords==null)?"500":lRecords;
mRecords = (mRecords==null)?"1000":mRecords;

limitRecords = Long.parseLong(lRecords);
maxRecords = Long.parseLong(mRecords);

String reqUri = request.getRequestURI();
int ind = reqUri.lastIndexOf("/");
String queryPage = reqUri.substring(ind+1);
HttpSession session = request.getSession(true);
try{

int pagesize = Constants.PAGE_SIZE;

if(sPagesize!=null||!sPagesize.equals(""))
{
pagesize = Integer.parseInt(sPagesize);
}
String oldFormName = (String)session.getAttribute("cur_page_formName");

if(reQuery.equalsIgnoreCase("true")||curpageStr==null||curpageStr.equals("")||curpageStr.equals(Constants.MAX_PAGES+""))
{

String sPk="";
String sPkTmp="";
if(pks!=null){
if(fields!=null&&fields.startsWith("pk,")){
String[] allPks = Utils.toArray(pks);
sPk = "'<input type=checkbox name=\"delrows\" value=\"";
sPkTmp = "";
for(int i=0;i<allPks.length;i++){

sPkTmp += " and "+allPks[i]+"='''"+Constants.DB_CONCAT_SMBL+allPks[i]
+Constants.DB_CONCAT_SMBL+"'''";
}
if(!sPkTmp.equals(""))
sPkTmp = sPkTmp.substring(5);

sPk += sPkTmp;
sPk += "\">'";
}
}

if(!sPk.equals(""))
fields = sPk+fields.substring(2);
String sAll = "select count(*) from "+qTable+" where "+condition;
queryStr = "select "+fields+" from "+qTable+" where "+condition+" and rownum<="+limitRecords+" "+orderby + groupby;

SqlUtil sqlUtil = new SqlUtil();

long allCounts = Long.parseLong(sqlUtil.query(sAll).getRow(0).getField(0).getValue());

if(isContinue.equalsIgnoreCase("false")){
if(allCounts>maxRecords){
status = 2;
msg = allCounts+"";
return ;
}
}



dp = sqlUtil.query(queryStr);
session.setAttribute("cur_page_formName",formName);
session.setAttribute("cur_page_querypage",queryPage);
session.setAttribute("cur_page",dp);
if(curpageStr==null||curpageStr.equals("")){
curpage = -1;
}
else{
curpage = Constants.MAX_PAGES;
}
}
else
{


dp = (DataPackage)session.getAttribute("cur_page");
formName = (String)session.getAttribute("cur_page_formName");
queryPage = (String)session.getAttribute("cur_page_querypage");

curpage = Integer.parseInt(curpageStr);

}
String tbHead = Utils.getValue("colsTbHead",formName);
sTitle = PageWriteUtil.writeTitle(dp,queryPage,pagesize,curpage);
sTable = PageWriteUtil.writeTable(dp,formName,tbHead,pagesize,curpage);
pageString = PageWriteUtil.getPage(dp,queryPage,formName,tbHead,pagesize,curpage);

status = 0;
msg = Constants.OPERATION_SUCESS;

}
catch(Exception ex){

status = 1;
msg = "["+Constants.OPERATION_FAILURE+"]"+ex.getMessage();
// ex.printStackTrace();
Log.error(ex);
}

}
icecloud 2003-12-11
  • 打赏
  • 举报
回复
refactoring之后是:
private boolean isParameterValidate(HttpServletRequest request, String param){
return request.getParameter(param)!=null&&!"".equals(request.getParameter(param);
}

private int getIntValue(HttpServletRequest request, String param){
return isParameterValidate(request,param)?
Integer.parseInt(request.getParameter(param))
: 0;
}


public void do(){
int id = getIntValue(request,"id");
}
加载更多回复(97)

23,409

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧