20180316

오늘의 일기
* 어제 들은 이야기에 따르면 여기의 다른 팀에서는 proofread만 해도 coauthor로 넣어주는 경우가 있다고 한다. 역시 팀별로 다른가보다. 연구 조직의 scalability를 위해서는 협업이 잘 되는 것이 좋은 것 같다.
* J가 코딩에 대한 몇 가지 중요한 것을 알려주었다. Software engineering은 아주 중요하고, 인턴십과 졸업 이후에도 코딩을 잘 못하고 있다면 아주 부끄러운 일이 될 것이라고 이야기해주었다. Paper machine이 되는 것에 만족해서는 안 된다. 우리는 동시에 유능한 시스템 디자이너가 되면서도 유능한 개발자가 되어야 한다.
(1) Google c++ style guide를 따르도록 하라. Eclipse를 사용하고 있다면 https://github.com/google/styleguide/blob/gh-pages/eclipse-cpp-google-style.xml 를 사용하도록 하라. (Project – Properties – C/C++ General – Formatter).
(2) Golden Rule No 1.: 클래스를 만들 때에는 사용을 기준으로 디자인하지 말고, 개념을 기준으로 디자인하라. 모든 클래스는 개념을 기준으로 설계되어야 한다. 그리고 클래스는 최소한으로 유지하라.
(3) Golden Rule No2.: 중복을 최소화하라. 중복된 데이터와 코드는 구조가 잘못 짜여져있음을 의미한다. 디자인을 최소화하도록 하라.
(4) 네이밍은 아주 중요하다.
(5) 코드를 쓰는 것은 문서를 작성하는 것과 유사하다. 항상 독자를 개념에 두어라. 예를 들자면, 한 줄을 너무 길게 만드는 것을 피해야 한다. Makefile에서 newline을 피하기 위해 ; 등을 쓰지 말라.
(6) 하드코딩은 좋지 않다. 하드 코딩을 최대한 회피하도록 하라. Makefile에서 라이브러리 포함을 위해 -L을 하드코딩 하지 말고, LD_LIBRARY_PATH를 사용하는 식으로 되어야 한다.
(7) 모든 warning을 제거해야 한다.
(8) 중요한 사실: 좋은 코드를 작성하는 것은 시간 낭비가 아니라, 시간을 절약해준다. 우리는 항상 디버깅에 더 많은 시간을 소비한다. 따라서 좋은 코드를 작성하는 것은 효율성을 높여준다.
(9) 한 개의 클래스가 다른 클래스의 함수를 wrapping하는 것은 경고로 받아들여야 한다. 이것은 코드가 잘못 짜여져있음을 의미한다.
(10) 클래스가 다른 프로젝트에 사용되었을 때 어떻게 사용될지 생각해보라. 이것은 해당 클래스가 너무 specific한지, 아니면 너무 general한지 알려준다.
(11) 특정 코드의 수정이 있을 때, 연관되지 않은 다른 코드들이 불필요하게 재컴파일되는 경우를 방지해야 한다.
(12) 코멘트 또한 최소화되어야 한다. 코멘트가 너무 많다는 것은 코드가 직관적이지 않다는 것을 의미한다. 더 명료한 이름과 정의 그리고 로직을 작성하도록 하라.
* slurm configuration 문제 해결 방법을 발견함. Hyperthreading이 켜져있는 경우에 configuration 과정에서 발생하는 문제였음 (링크).

Advertisements
Posted in 1) Memo

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Recent Posts
누적 방문자 수
  • 142,176 hits
%d bloggers like this: