팀 프로젝트에 참여하고 진행하는건 개인프로젝트보다 몇배는 힘들다는것을 알게 되었습니다.
인원이 많을수록 협동, 피드백등 장점도 있지만 커뮤니티 비용, 규격화 비용증가, 책임감 저하 등의 단점이 더 많아 질수 있다는 것을 느끼게 해주었습니다.
- 팀 프로젝트의 인원은 2 ~ 4 명이 적당.
| <link rel="import" href="../core-icon-button/core-icon-button.html"> | |
| <link rel="import" href="../core-toolbar/core-toolbar.html"> | |
| <link rel="import" href="../core-header-panel/core-header-panel.html"> | |
| <link rel="import" href="../core-icons/core-icons.html"> | |
| <link rel="import" href="../paper-icon-button/paper-icon-button.html"> | |
| <link rel="import" href="../core-drawer-panel/core-drawer-panel.html"> | |
| <link rel="import" href="../paper-button/paper-button.html"> | |
| <polymer-element name="my-element"> |
| var developer = objInit({ | |
| info: { | |
| name : '개발자', | |
| state : 'go home' | |
| } | |
| }); | |
| var wife = objInit({ | |
| info: { | |
| name : '아내' | |
| } |
| function getPrime(max){ | |
| let sieve = _.fill(Array(max), true); | |
| let _max = Math.floor(Math.sqrt(max)); | |
| sieve[0] = false; | |
| sieve[1] = false; | |
| for(let i = 2 ; i <= _max ; i++){ | |
| if(sieve[i]){ | |
| for(let j = i * 2 ; j <= max ; j += i){ | |
| sieve[j] = false; |
| /** | |
| * 확장된 유클리드 알고리즘 | |
| * http://bbolmin.tistory.com/45 | |
| * s*m + t*n = gcd(m, n) 일때 | |
| * @method extendedEuclid | |
| * @param {int} a r1 | |
| * @param {int} b r2 | |
| * @return {int} t1 | |
| */ |
| /** | |
| * 고속 누승 알고리즘 구현. | |
| * x^p mod(m) 계산 | |
| * 참고: http://a.nex.kr.pe/wordpress/2015/10/21/제-6강-고속-누승-알고리즘과-모듈러/ | |
| * @method powMod | |
| * @param {int} x 피제수 | |
| * @param {int} p 지수 | |
| * @param {int} m 제수 | |
| * @return {int} x^p mod(m) 계산 결과값 | |
| */ |
./build/configsByEnv/app,
./build/configsByEnv/server,
./build/configsByEnv/build
로 분리하여 처리하는 범위(환경)별로 gulpfile.js을 분리시켰으며
./build/tasks/
| class Context{ | |
| - StrategyA strategyA | |
| - StrategyB strategyB | |
| } | |
| package PackageStrategyA { | |
| interface StrategyA{ | |
| + excute() | |
| } | |
| module.exports = { | |
| 'extends': 'airbnb', | |
| // "parser": "typescript-eslint-parser", | |
| // "parserOptions": { | |
| // "ecmaVersion": 6, | |
| // "sourceType": "module", | |
| // "ecmaFeatures": { | |
| // "modules": true, | |
| // "jsx": true | |
| // } |
| class Gear { | |
| constructor(readonly chainring: number, readonly cog: number) {} | |
| ratio() { | |
| return this.chainring / this.cog; | |
| } | |
| } |