Quiz1

// 본인이 가장 잘하는 언어로(JS, Python 등등) 더러운 코드를 깨끗한 코드로 
// 리팩토링하는 예시를 만들어보세요. 현재 파일은 JS 로 되어있지만. 자유롭게 다른 언어로 변경해주세요. 

// 원칙 1. 함수는 한가지를 해야 한다


// Before 😣
function changeBackgroundColor(){
    const timeSliderPosition = 0;
    document.getElementById("timeslider").onchange = function () {
      timeSliderPosition = event.srcElement.value;
      let upperBgColor='', downBgColor='';
      
      if (timeSliderPosition < 100) {
        upperBgColor = 'pink';
        downBgColor = 'blue';
      }
      else if (timeSliderPosition < 200) {
        upperBgColor = 'orange';
        downBgColor = 'green';
      }
      else if (timeSliderPosition < 300) {
        upperBgColor = 'yellow';
        downBgColor = 'tomato';
      }
      
      document.body.style.setProperty("--upper-bg-color", upperBgColor);
      document.body.style.setProperty("--down-bg-color", downBgColor);

      
      if (buttonpressed)
        light.color.setHex(0xFFFFFF);
      else
        light.color.setHex(0xAAAAFF);
      
      // set light position
      light.position.set(x, 30, 25);
  };
  render();
}

// 무엇을 고치려고 하는지, 고치려는 문제가 무엇인지 알려주세요.
바탕색을 바꾸는 기능과 rendering하는 기능으로 분리한다. light와 관련된 변화는 다른 함수로 뺀다
  

// After 😎
function changeBackgroundColorAndRenderForTimeSliderPosition(){
	backGroundColorChangeForSliderPosition()
    render()
}

function backGroundColorChangeForSliderPosition(){
	const timeSliderPosition = 0;
    document.getElementById("timeslider").onchange = function () {
      timeSliderPosition = event.srcElement.value;
      
      let [upperColor, lowerColor] = selectUpperLowerColor(timeSliderPosition);
      
      document.body.style.setProperty("--upper-bg-color", upperColor);
      document.body.style.setProperty("--down-bg-color", lowerColor);
  };
}

function selectUpperLowerColor(position){
	let upperColor = '', lowerColor = ''
    
	if (position < 100){
    	upperColor = 'pink'
        lowerColor = 'blue'
    }else if (position < 200 ){
    	upperColor = 'orange'
        lowerColor = 'green'
    }else if (timeSliderPosition < 300) {
        upperColor = 'yellow';
        lowerColor = 'tomato';
    }
    return [upperColor, lowerColor]
}

  
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.
// 바탕색을 바꾸는 기능과 rendering하는 기능이 다르기 때문에 다른 함수를 쓰고 
같은 level로 맞추기 위해 각각 함수로 묶었다. 그리고 ligth color 변경은 다른 함수로 뺐다

Quiz2

// 본인이 가장 잘하는 언어로(JS, Python 등등) 더러운 코드를 깨끗한 코드로 
// 리팩토링하는 예시를 만들어보세요. 현재 파일은 JS 로 되어있지만. 자유롭게 다른 언어로 변경해주세요. 

// 원칙 3. 한 개념에 한 단어를 사용하라, 불필요한 맥락을 없애라


// Before 😣
class NomadCoderUser {
  private String ncuId;
  private String ncuPwd;
  private String ncuNickname;
  private String ncuEmail;

  public NomadCoderUesr() {};
  
  public void updateNcuPwd(String ncuPwd) {
    this.ncuPwd = ncuPwd;
  };
  public void modifyNcuNickname(String ncuNickname) {
    this.ncuNickname = ncuNickname;
  };
  public void changeEmail(String ncuEmail) {
    this.ncuEmail = ncuEmail;
  };
}

// 무엇을 고치려고 하는지, 고치려는 문제가 무엇인지 알려주세요.

  

// After 😎
class nomadCoderUser {
	private String id;
    private String password;
    private String nickname;
    private String email;
    
    public NomadCoderUser(){};
    
    public void setPassword(String password){
    	this.password = password;
    }
    
    public void setNickname(String nickname){
    	this.nickname = nickname;
    }
    
    public void setEmail(String email){
    	this.email = email;
    }
}

  
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.

Quiz3

// 본인이 가장 잘하는 언어로(JS, Python 등등) 더러운 코드를 깨끗한 코드로 
// 리팩토링하는 예시를 만들어보세요. 현재 파일은 JS 로 되어있지만. 자유롭게 다른 언어로 변경해주세요. 

// 원칙 3. 오류코드보다는 예외를 사용하자

// Before 😣
public Status deletePage(Page page) {
    if(deletePage(page) == E_OK) {
        if(registry.deleteReference(page.name) == E_OK) {
            if(configKeys.deleteKey(page.name.makeKey()) == E_OK) {
                log.info("page deleted");
                return E_OK;
            } else {
                log.error("config key not deleted");
            }
        } else {
            log.error("reference not deleted");
        }
    } else {
        log.error("page not deleted");
    }
    return E_ERROR;
}

// 무엇을 고치려고 하는지, 고치려는 문제가 무엇인지 알려주세요.

  

// After 😎
public Status deletePage(Page page) {
	try {
    	deletePage(page);
        registry.deleteReference(page.name);
        configKeys.deleteKey(page.name.makeKey());
    }catch(Exception ex) {
    	log.error(ex.getMessage());
    }
    
    
}


  
// 어떻게 고쳤는지, 사례에서 무엇을 배워야 하는지 설명해주세요.

'노마드 코더' 카테고리의 다른 글

클린코드 Mission01  (0) 2024.10.18

+ Recent posts