자바스크립트는 C/C++/Java 와 비교할 때 치명적인 에러를 내지는 않는다.
그러므로 코딩 컨벤션이 느슨해도 실제 운영되는 프로그램 개발에 지장이 없는 편이다.
물론 이것 때문에 웹 프로그래밍의 진입 장벽이 낮기도 하지만 엄격한 로직 제작의 중요성이 떨어지는 것은 아니다.
이번에는 자바스크립트로 된 코드를 정리해 보겠다.
출처 : https://github.com/sdepold/connect-form/blob/master/lib/connect-form.js
다른 사람들은 어떨지 모르겠으나 저렇게 코딩된 코드는 나는 한참 살펴봐야 이해가 되었다.
이렇게 코딩해 보면 어떨까?
module.exports = function(options) { options = options || {}; return function(req, res, next) { if (formRequest(req)) { var Callback = function(){}, form = req.form = new formidable.IncomingForm; merge(form, options); form.complete = function(fn){ Callback = fn; }; form.parse(req, function(){ Callback.apply(this, arguments); }); } next(); }; };
로직은 바뀐 것 없고 괄호, 공간만 바뀌고 Callback이라는 function이 대문자 시작이다.
function 을 변수와 똑같은 방법으로 접근이 가능하다고 하지만 변수와 function 은 구분이 되는 것이 좋은 것 같다.
띄어쓰기만 적절히 한 셈인데도 눈에 들어오는 것이 어떠한가?
별다른 알고리즘 수정이 없었지만 효과는 좋다.
위 코드를 전통적인 방식으로 한번 더 바꿔 보려고 했는데 효과적인 코드가 나오지 않는다.
전체 소스 구조를 검토해야 가능할 것 같다.