言語別開発ツールの棚卸し
目次
目的
開発スタイルについて思うところがあり見直したため、自分用のメモとして言語別の開発ツール群をまとめた。
自分の環境
$ cat /etc/debian_version stretch/sid $ uname -a Linux calc0 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
言語別の開発ツール群
エディタは"neovim"*1を用いており、補完・シンタックスチェック(syntastic*2)・タグジャンプ(+tagbar*3)などを用いていることを断っておきます。
また、開発はフレームワークを用いたものではなく、ライトなプログラム作製が主です。
言語 | C言語 | Python | Ruby | Haskell | Shell Script | Markdown |
---|---|---|---|---|---|---|
環境 | - | pyenv(anyenv*4) | rbenv(anyenv) | stack*5 | - | - |
パッケージ管理 | - | pip(requirements.txt) | gem | Cabal | - | - |
Lint・スタイルチェック | gcc | flake8(pyflakes+pep8)+Pylint | rubymotion+rubocop | Hlint+scan*6+hdevtools*7 | ShellCheck*8 | mdl*9 |
ドキュメンテーション | Doxygen*10 | Sphinx(docstring) | Yard | haddock | (Doxygen*11) | - |
テスト-ドキュメント例示 | (assert.h) | doctest | p0deje/yard-doctest(minitest-doctest) | docktest | - | - |
テスト-実装 | CUnit | unittest | Rspec | Hspec | (shUnit) | - |
テストライナー | Make | Sphinx+watchdog | Guard | Cabal | - | - |
デバッグ | gcc -g -C0 -Wall test.c && gdb a.out |
pdb test.py |
ruby -rdebug test.rb |
ghci test.hs (:step、:list) |
bash -x test.sh 、コード内に trap 'read 〜' DEBUG *12 |
- |
タグ | ctags | ctags | ctags | hasktags*13 | ctags | ctags(markdown2ctags*14) |
Travis CI | autotools+Make | unittest | Rspec | Cabal | - | - |
Code Climate:カバレッジ率計測 | - | o | o | o | - | - |
heroku デプロイ | - | o | o | - | - |
【2017/02/22 追記】デバックについて追記を行いました。
ソースコードのコメントからのドキュメント生成については、"Javadoc" ライクなものが好みだったため、それが反映されています。
参考にしたサイト
自分の開発スタイルが学生時代から変わらず「vimでPHP書いてCGI」みたいなレベルだったので、TDDのバイブルを読んだり、下記のサイトなどに触発されつつ、開発スタイルについて改めました。
書籍:テスト駆動開発入門
著者:ケント ベック
所感
言語別に網羅的に見ることによって、何ができていないかをチェックすることができましたし、記憶の棚卸しができました。
言語選択・開発スタイル・使用ツールについては様々な選択肢・組み合わせがありますが、その組み合わせ考案の一助になればと思います
*2:https://github.com/vim-syntastic/syntastic
*3:https://github.com/majutsushi/tagbar
*4:https://github.com/riywo/anyenv
*5:https://docs.haskellstack.org/en/stable/README/
*6:https://hackage.haskell.org/package/scan
*7:https://hackage.haskell.org/package/hdevtools
*8:https://www.shellcheck.net/
*9:https://github.com/mivok/markdownlint
*11:https://rickfoosusa.blogspot.jp/2011/08/howto-have-doxygen-support-bash-script.html
コマンドオプションによる "ハーモニー" <harmony/>
著者:伊藤計劃
目次
はじめに
感想とかでなく、一発芸的なものを。
netstat
を使っている時になんか聞いたことのある響きだなと、それなら他にもあるかなと。
自分の環境
$ cat /etc/debian_version stretch/sid $ uname -a Linux calc0 4.4.0-59-generic #80-Ubuntu SMP Fri Jan 6 17:47:47 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.1 LTS"
登場人物
霧慧 トァン
$ netstat -tuan 稼働中のインターネット接続 (サーバと確立) Proto 受信-Q 送信-Q 内部アドレス 外部アドレス 状態 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN -snip-
ネットワークの上級監察官という感じ。(“netstat -toan” でも良いかも)
零下堂 キアン
$ ls -Xian 合計 476 26476551 drwxr-xr-x 2 1000 1000 4096 11月 19 01:24 Desktop 13634029 drwxrwxr-x 14 1000 1000 4096 5月 28 2015 Dictionary -snip-
ls
で色んな数字を多く出力できるか試みたが、(ls
では)アクセス権限を数字で表現できないのであった…
御冷 ミァハ
$ date "+%M %I %a %H %A" 04 11 火 23 火曜日
彼女の発言はその時代においては独特だ…
霧慧 ヌァザ
$ ps nuxa USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 0 1 0.0 0.0 120020 6212 ? Ss 22:02 0:01 /sbin/init splash 0 2 0.0 0.0 0 0 ? S 22:02 0:00 [kthreadd] -snip-
何とはいっても親子。オプションが似ています。
さいごに
学生時分、伊藤計劃さんのおかげで素晴らしい読書体験ができました。
本当にありがとうございました。