코드를 좀 더 아름답게 만들어주세요.
우리는 클래스를 쓸 때 일반적으로 변수를 클래스의 맨 앞에 쓰고 뒤에 방법을 쓴다. 이렇게 쓰면 코드 읽기에 편리하다.같은 이치의 문법도 마찬가지다. 우리는 방법을 쓸 때 방법에 사용된 변수를 모두 방법의 맨 앞에 집중적으로 설명하거나 값을 부여해야 한다.
구조화된 프로그래밍 사고방식으로 어디에 변수를 쓰고 어디에 쓰느냐가 아니라
:
StockChange change=new StockChange();
DataBaseConnection h2Conn=null;
Logger.info(" ");
try {
String priceSumsql="select sum(t.n_price)priceSum from FACT_FUND_HLDDETAIL t where t.s_type='E' and t.f_code='"+fundCode+"'";
String priceUpdatesql="update FACT_FUND_HLDDETAIL a set a.n_price=(select t.n_amount*f.f_newest_price n_price from FACT_FUND_HLDDETAIL t, fu_stock_market f where t.s_symbol=f.vc_symbol and a.s_symbol=t.s_symbol) where a.f_code='"+fundCode+"'";
h2Conn = new DataBaseConnection(DataBaseConnection.getH2Connection());
//
h2Conn.setResultSet(h2Conn.getStmt().executeQuery(priceSumsql));
String pricePreSum="";
String priceLastSum="";
:
DataBaseConnection h2Conn = null;
String pricePreSum = "";
String costPreSum = "";
String priceLastSum = "";
String costLastSum = "";
......
2. 상수 집중:
때때로 프로그램에서 우리는 유사한 문자열이나 다른 유형이 여러 가지 방법에 흩어져 있다. 특히 sql문장, sql문장은 사실 우리는 기본적으로 변하지 않는'상량'이라고 볼 수 있기 때문에 우리는 이러한 흩어진 sql를 클래스 구성원 변수의 형식으로 클래스의 맨 앞에 집중적으로 쓸 수 있다.이렇게 처리하면 코드 구조가 더욱 뚜렷하고 보기 편리할 뿐만 아니라 집중적으로 수정하기도 편리하며 모든 방법은 긴 문자열의 ql로 인해 매우 보기 흉하지 않을 것이다.
:
public class ValuationBo {
private ErrorsDeal errors;
/**
*
* @param fundCode
* @return
*/
public StockChange updateStockPrice(String fundCode){
StockChange change=new StockChange();
DataBaseConnection h2Conn=null;
try {
String priceSumsql="select sum(t.n_price)priceSum from FACT_FUND_HLDDETAIL t where t.s_type='E' and t.f_code='"+fundCode+"'";
String priceUpdatesql="update FACT_FUND_HLDDETAIL a set a.n_price=(select t.n_amount*f.f_newest_price n_price from FACT_FUND_HLDDETAIL t, fu_stock_market f where t.s_symbol=f.vc_symbol and a.s_symbol=t.s_symbol) where a.f_code='"+fundCode+"'";
h2Conn = new DataBaseConnection(DataBaseConnection.getH2Connection());
//
h2Conn.setResultSet(h2Conn.getStmt().executeQuery(priceSumsql));
String pricePreSum="";
String priceLastSum="";
while(h2Conn.getResultSet().next()){
pricePreSum=h2Conn.getResultSet().getString(1);
}
//
h2Conn.getStmt().executeUpdate(priceUpdatesql);
//
h2Conn.setResultSet(h2Conn.getStmt().executeQuery(priceSumsql));
while(h2Conn.getResultSet().next()){
priceLastSum=h2Conn.getResultSet().getString(1);
}
if(pricePreSum!=null&&!"".equals(pricePreSum)){
change.setPrePrice(Double.parseDouble(pricePreSum));
}
if(priceLastSum!=null&&!"".equals(priceLastSum)){
change.setLastPrice(Double.parseDouble(priceLastSum));
}
} catch (Exception e) {
Logger.error(" :"+e.getMessage());
errors.insertFutursErrors("1"," ",e.getMessage(),new Date());
}finally{
DataBaseConnection.closeConnection(h2Conn.getConn(), h2Conn.getStmt(), null, h2Conn.getResultSet());
}
return change;
}
/**
*
* @param fundCode
* @return
*/
public StockChange updateFutures(String fundCode){
StockChange change=new StockChange();
DataBaseConnection h2Conn=null;
String pricePreSum="";
String costPreSum="";
String priceLastSum="";
String costLastSum="";
try {
String priceSumsql="select sum(t.n_price)priceSum,sum(t.n_cost)costSum from FACT_FUND_HLDDETAIL t where t.s_type='E' and t.f_code='"+fundCode+"'";
String deletesql="delete FACT_FUND_HLDDETAIL t where t.s_type='E' and t.f_code='"+fundCode+"'";
String futruesInsertsql="insert into FACT_FUND_HLDDETAIL (t_date,f_code, s_symbol,s_subcode,s_type, s_type_assist, n_price, n_cost,n_amount,s_exchange,VC_ISRB201,N_INTEREST,N_YDISCOUNT) select sysdate,t.vc_futures_code,t.vc_exchange_code,'','FU',decode (t.vc_bs_flag,'1' ,'B','2','S'),t.f_newest_price*decode (t.vc_bs_flag,'1', t.f_buy_position,'2',t.f_sale_position),'-1','-1','-1','-1','-1','-1' From Fu_hold_detail t where t.vc_exchange_code!=''";
h2Conn = new DataBaseConnection(DataBaseConnection.getH2Connection());
//
h2Conn.setResultSet(h2Conn.getStmt().executeQuery(priceSumsql));
while(h2Conn.getResultSet().next()){
pricePreSum=h2Conn.getResultSet().getString(1);
costPreSum=h2Conn.getResultSet().getString(2);
}
//
h2Conn.getStmt().executeUpdate(deletesql);
//
h2Conn.getStmt().executeUpdate(futruesInsertsql);
//
h2Conn.setResultSet(h2Conn.getStmt().executeQuery(priceSumsql));
while(h2Conn.getResultSet().next()){
priceLastSum=h2Conn.getResultSet().getString(1);
costLastSum=h2Conn.getResultSet().getString(2);
}
if(pricePreSum!=null&&!"".equals(pricePreSum)){
change.setPrePrice(Double.parseDouble(pricePreSum));
}
if(costPreSum!=null&&!"".equals(costPreSum)){
change.setPreCost(Double.parseDouble(costPreSum));
}
if(priceLastSum!=null&&!"".equals(priceLastSum)){
change.setLastPrice(Double.parseDouble(priceLastSum));
}
if(costLastSum!=null&&!"".equals(costLastSum)){
change.setLastCost(Double.parseDouble(costLastSum));
}
} catch (Exception e) {
Logger.error(" :"+e.getMessage());
errors.insertFutursErrors("1"," ",e.getMessage(),new Date());
}finally{
DataBaseConnection.closeConnection(h2Conn.getConn(), h2Conn.getStmt(), null, h2Conn.getResultSet());
}
return change;
}
public ErrorsDeal getErrors() {
return errors;
}
public void setErrors(ErrorsDeal errors) {
this.errors = errors;
}
.......
}
:
private static final String deleteContractSql = "delete from fu_futures_contract";
private static final String insertContractSql = new StringBuilder().append("insert into fu_futures_contract(Vc_exchange_code,").append("Vc_exchange_name,Vc_futures_code, Vc_futures_name,").append("F_hand_number,F_speculate,F_maintain,").append("D_last_day,F_max_hand,F_max_position,Vc_kind_code,").append("Vc_kind_name,F_min_unit)").append("values(?,?,?,?,?,?,?,?,?,?,?,?,?)").toString();
private static final String deleteMarginRatioSql = "delete from fu_marginrate_ratio";
private static final String insertMarginRatioSql = new StringBuilder().append("insert into fu_marginrate_ratio(Vc_fund_code,").append("Vc_futures_code,Vc_user_name,Vc_buy_marginrate_money,").append("Vc_sale_marginrate_money,Vc_buy_marginrate_hands,").append("Vc_sale_marginrate_hands,Vc_buy_maintain_money,").append("Vc_sale_maintain_money,Vc_buy_maintain_hands,Vc_sale_maintain_hands)").append("values(?,?,?,?,?,?,?,?,?,?,?)").toString();
..........
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
코드를 좀 더 아름답게 만들어주세요.1. 변수 집중: 우리는 클래스를 쓸 때 일반적으로 변수를 클래스의 맨 앞에 쓰고 뒤에 방법을 쓴다. 이렇게 쓰면 코드 읽기에 편리하다.같은 이치의 문법도 마찬가지다. 우리는 방법을 쓸 때 방법에 사용된 변수를 모두...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.