Closed1
非情報系研究室における開発についてのベストプラクティスとは?(コメント募集中)
こんにちは、美味しいしです。
表題の通り、今回はアカデミア、しかも最近になってプログラミングを用いるようになった研究室の闇の魔術に対して、B4の一学生がどのような対策を取れるかを考えていきたいです。
それと同時に、アカデミアにおける開発のベストプラクティスを探っていければ、と考えております。
色々な方のご意見・反応をお待ちしております。
現状
- 化学工場の生産効率の最適化の研究室(プロセスシステム工学という分野)で研究をしており、実験はせずシミュレーションやモデル化を行っている。
- 教授はおそらくコードが書けず、同僚・先輩にも複数人での開発経験がある人は当然いない。そのため、gitなどは使われておらず、関数化もされないコードが散逸している状態である。データはセル結合済みのExcelで保存されていることが多い。
- 可読性・再利用性を気にしたコードはほとんど存在しない。そのため、コードを綺麗に書いてもそれを評価できる人はいないと思われる。
- 開発言語はなんでも良い。(のでとりあえずpythonを使っています。)
対処法?
- 周囲の状況に関しては諦める。発言力のある立場になったり後輩に指導する立場になったら変えればいい。
- 自分の開発状況を管理するために、自分だけでもgitを使う。できれば指導してくれる先輩くらいまでは布教したい。
- データの前処理は脳死で力技。力 is power.
- 読んで評価してくれなくても、自分の書くコードくらいは綺麗に書きたい。
議論したい(聞きたい)点
- トライアンドエラーが多い開発におけるベストプラクティスやアンチパターン。
- 現状では、jupyter-notebookで途中経過を残しつつ開発→ある程度上手くいったものをまとめて関数として実装しています。
- 実装の前にUML図のようなものを書いて構成を把握するようにしています。
- 機能がわかりやすくなるようにこまめに関数化していますが、global変数の扱いや関数の切り方、そもそも一回しか登場しない部分を関数にまとめる意味があるのかなど実装しながら疑問に感じています。
- csv等のデータ(特に共同研究先から預かっている、漏洩したらまずいデータ)の管理方法。
ソフトウェア工学の論文のリンクや個人的な体験などなんでも募集しています。
このスクラップは2021/08/06にクローズされました