読者です 読者をやめる 読者になる 読者になる

heyheytower

日々のメモです。誰かのお役に立てれば幸いです。

言語別開発ツールの棚卸し

HaskellLogoStyPreview-1.png

Pic.1 Haskell Logo

目次

目的

開発スタイルについて思うところがあり見直したため、自分用のメモとして言語別の開発ツール群をまとめた。

自分の環境

$ 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)などを用いていることを断っておきます。

また、開発はフレームワークを用いたものではなく、ライトなプログラム作製が主です。

Table.1 言語別の開発ツール群

言語 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" ライクなものが好みだったため、それが反映されています。

参考にしたサイト

自分の開発スタイルが学生時代から変わらず「vimPHP書いてCGI」みたいなレベルだったので、TDDのバイブルを読んだり、下記のサイトなどに触発されつつ、開発スタイルについて改めました。


書籍:テスト駆動開発入門
著者:ケント ベック

所感

言語別に網羅的に見ることによって、何ができていないかをチェックすることができましたし、記憶の棚卸しができました。

言語選択・開発スタイル・使用ツールについては様々な選択肢・組み合わせがありますが、その組み合わせ考案の一助になればと思います

コマンドオプションによる "ハーモニー" <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"

登場人物

霧慧 トァン

Op.1 トァン

$ netstat -tuan
稼働中のインターネット接続 (サーバと確立)
Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態      
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN
-snip-

ネットワークの上級監察官という感じ。(“netstat -toan” でも良いかも)

零下堂 キアン

Op.2 キアン

$ ls -Xian
合計 476
26476551 drwxr-xr-x   2 1000 1000   4096 1119 01:24 Desktop
13634029 drwxrwxr-x  14 1000 1000   4096  528  2015 Dictionary
-snip-

lsで色んな数字を多く出力できるか試みたが、(lsでは)アクセス権限を数字で表現できないのであった…

御冷 ミァハ

Op.3 ミァハ

$ date "+%M %I %a %H %A"
04 1123 火曜日

彼女の発言はその時代においては独特だ…

霧慧 ヌァザ

Op.4 ヌァザ

$ 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-

何とはいっても親子。オプションが似ています。

さいごに

学生時分、伊藤計劃さんのおかげで素晴らしい読書体験ができました。
本当にありがとうございました。