A7X

책리뷰 | 개발자의 글쓰기

|

개발자의 글쓰기

개발자의 글쓰기

💫 Summary

한줄평 : 개발자가 작성하는 글을 다양한 예시와 함께 설명해주는 책

평점: ⭐⭐⭐⭐


글은 그 종류에 따라 글쓰기 방식이 달라진다. 우리가 흔히 알고 있는 좋은 글쓰기란 기-승-전-결이 완벽한 글이다. 하지만, 개발자가 가장 마주하는 글인 코드(code)로 대입해 봤을 때 기승전결이 완벽한 코드? 어딘가 묘하게 초점이 다른것 같다. 그렇다면 개발자로서 좋은 글을 쓴다는 것은 어떤 방법을 따르는 걸까.

개발자의 글쓰기 라는 책은 이 방법에 대해 작은 단위인 변수명 짓기부터 큰 단위인 보고서 작성까지 단계적으로 설명해준다. 책을 읽으면서 인상 깊게 보았던 부분을 두 가지 정도 추려 가볍게 이야기 해나가려고 한다.

  • 좋은 변수명 짓기
  • 릴리스 문서와 장애 보고서 쓰기
✨ 좋은 변수명 짓기

코드를 작성하기 전 변수나 메소드 혹은 함수 이름 등을 선언하고 시작한다. 이름을 짓는 가장 빠른 방법은 그 이름을 영어 단어로 번역하는 방법이라고 생각한다. 성적이면 var grade 이런 식으로. 하지만, 코드가 점점 더 복잡하고 길어질수록 이렇게 간단한 영단어로는 그 의미를 포함하는 게 어려워진다.

내가 생각한 좋은 변수명은 최대한 짧은 변수명이라고 생각했다. 아니, 어떻게 보면 좋은 변수명을 만들어야지 하는 고민을 해본 적이 있던가? 그저 단어를 파스칼 혹은 카멜식으로 작성하는 것을 지켰을 뿐이다. 그럼 좋은 변수명이란 뭘까.

저자는 좋은 변수명이란, 개발자 혹은 기획자가 보아도 이해할 수 있는 것이며 즉, 주석이 필요하지 않은 변수명이라고 설명한다. 무작정 줄이는 변수명이 아닌, 검색과 이해를 용이하도록 짓는 방법에 대한 것이었다.

그렇다면 이해 가능한 변수명은 어떤 기준을 따르고 있을까. 저자는 좋은 이름이 가진 5가지 특징인 ‘SMART’ 를 다양한 예시와 함께 설명해 준다.

  • easy to Search
  • easy to Mix
  • easy to Agree
  • easy to Remember
  • easy to Type
✨ 릴리스 문서와 장애 보고서 쓰기

릴리스 노트에서 자주 보는 것은 역시 어플 업데이트 내역이라고 생각한다.

유튜브 업데이트 창에 너무 '당황스러운' 문구가 떡하니 올라왔다 | 위키트리

내가 보았던 릴리스 노트 중 가장 인상 깊었던 것은 이것이다. 대체 어떤 버그가 고쳐지고, 성능이 개선되었는지는 모르겠지만, 확실한 건 개발자가 오후 반차를 썼다는 것이겠지…

책에서는 가볍게 어떤 버그를 고쳤는지, 그리고 어떤 성능이 개선되었는지를 통합해서 정리하는 방법에 대해서 설명해 준다. 예시를 제시하여 공통적인 문장을 하나로 줄이고, 그로 인해 얻을 수 있는 성능 효과를 파악하는 등의 꽤 단계적인 방법을 통해 독자를 차근차근 이끌어준다. 나는 이 과정을 읽으면서 저자가 효과적으로 요약하는 방법을 알려준다고 느꼈다.

💫 마치며…

한 번 읽고 덮을 책이 아닌 주기적으로 펴볼 수 있는 책이라고 생각한다. 아직 SI 제안서, 개발 가이드 등은 작성할 일이 없기 때문에 가볍게 훑고 지나가는 느낌으로 읽었는데. 만약 이들을 작성할 일이 생긴다면 주저 없이 이 책을 펴서 도움을 받을 수 있을 것이다.

Introducing Lanyon

|

Lanyon is an unassuming Jekyll theme that places content first by tucking away navigation in a hidden drawer. It’s based on Poole, the Jekyll butler.

Built on Poole

Poole is the Jekyll Butler, serving as an upstanding and effective foundation for Jekyll themes by @mdo. Poole, and every theme built on it (like Lanyon here) includes the following:

  • Complete Jekyll setup included (layouts, config, 404, RSS feed, posts, and example page)
  • Mobile friendly design and development
  • Easily scalable text and component sizing with rem units in the CSS
  • Support for a wide gamut of HTML elements
  • Related posts (time-based, because Jekyll) below each post
  • Syntax highlighting, courtesy Pygments (the Python-based code snippet highlighter)

Lanyon features

In addition to the features of Poole, Lanyon adds the following:

  • Toggleable sliding sidebar (built with only CSS) via link in top corner
  • Sidebar includes support for textual modules and a dynamically generated navigation with active link support
  • Two orientations for content and sidebar, default (left sidebar) and reverse (right sidebar), available via <body> classes
  • Eight optional color schemes, available via <body> classes

Head to the readme to learn more.

Browser support

Lanyon is by preference a forward-thinking project. In addition to the latest versions of Chrome, Safari (mobile and desktop), and Firefox, it is only compatible with Internet Explorer 9 and above.

Download

Lanyon is developed on and hosted with GitHub. Head to the GitHub repository for downloads, bug reports, and features requests.

Thanks!

Example content

|
Howdy! This is an example blog post that shows several types of HTML content supported in this theme.

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Sed posuere consectetur est at lobortis. Cras mattis consectetur purus sit amet fermentum.

Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam id dolor id nibh ultricies vehicula ut id elit.

Etiam porta sem malesuada magna mollis euismod. Cras mattis consectetur purus sit amet fermentum. Aenean lacinia bibendum nulla sed consectetur.

Inline HTML elements

HTML defines a long list of available inline tags, a complete list of which can be found on the Mozilla Developer Network.

  • To bold text, use <strong>.
  • To italicize text, use <em>.
  • Abbreviations, like HTML should use <abbr>, with an optional title attribute for the full phrase.
  • Citations, like — Mark otto, should use <cite>.
  • Deleted text should use <del> and inserted text should use <ins>.
  • Superscript text uses <sup> and subscript text uses <sub>.

Most of these elements are styled by browsers with few modifications on our part.

Heading

Vivamus sagittis lacus vel augue rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

Code

Cum sociis natoque penatibus et magnis dis code element montes, nascetur ridiculus mus.

// Example can be run directly in your JavaScript console

// Create a function that takes two arguments and returns the sum of those arguments
var adder = new Function("a", "b", "return a + b");

// Call the function
adder(2, 6);
// > 8

Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa.

Lists

Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.

  • Praesent commodo cursus magna, vel scelerisque nisl consectetur et.
  • Donec id elit non mi porta gravida at eget metus.
  • Nulla vitae elit libero, a pharetra augue.

Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue.

  1. Vestibulum id ligula porta felis euismod semper.
  2. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
  3. Maecenas sed diam eget risus varius blandit sit amet non magna.

Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis.

HyperText Markup Language (HTML)
The language used to describe and define the content of a Web page
Cascading Style Sheets (CSS)
Used to describe the appearance of Web content
JavaScript (JS)
The programming language used to build advanced Web sites and applications

Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Nullam quis risus eget urna mollis ornare vel eu leo.

Tables

Aenean lacinia bibendum nulla sed consectetur. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Name Upvotes Downvotes
Totals 21 23
Alice 10 11
Bob 4 3
Charlie 7 9

Nullam id dolor id nibh ultricies vehicula ut id elit. Sed posuere consectetur est at lobortis. Nullam quis risus eget urna mollis ornare vel eu leo.


Want to see something else added? Open an issue.

What's Jekyll?

|

Jekyll is a static site generator, an open-source tool for creating simple yet powerful websites of all shapes and sizes. From the project’s readme:

Jekyll is a simple, blog aware, static site generator. It takes a template directory […] and spits out a complete, static website suitable for serving with Apache or your favorite web server. This is also the engine behind GitHub Pages, which you can use to host your project’s page or blog right here from GitHub.

It’s an immensely useful tool and one we encourage you to use here with Lanyon.

Find out more by visiting the project on GitHub.