「リファクタリング」を含む日記 RSS

はてなキーワード: リファクタリングとは

2022-12-02

anond:20221202113512

恐らくニーズが変化しないような機能しか実装してきていないからそういう感想を持っているんじゃないか

基本的プログラム機能が増えるほど複雑性が指数関数的に増えて行くので

如何に単純な機能の組み合わせで実装を進めていくかっていうのが大事だけど

それを最初から考えて実装するのは無理なので実装リファクタリングを繰り返す必要がある

最初から完璧設計が出来ていればリファクタリングしなくて良い」というのは正解なんだけど

ユーザーニーズは常に変化するから最初から完璧設計っていうのは神にしか出来ない

設計を変えず、リファクタリングもせずにユーザーニーズに応えようとすると単純な機能の組み合わせで実現できなくなってくるから難解な作業になる

この辺が「プログラミング単純作業じゃ無い」っていう根本にあるんだけど

ニーズが変化せずに最初設計から変える必要がないようなシステムだと「プログラミング単純作業」とかいう発想になるんだと思う

2022-11-30

並列処理をまともに書けてる人をほとんど見たことない

オーダを知らないで書かれたコードなんかよりもっとやばいのが並列処理な

爆弾みたいなもんだけど、世の中のシステムにかなり内包されてる

レベル1:単に並列処理として書いてあるだけ

レベル2:とにかくロック

レベル3:並列処理しない

レベル4〜99ぐらいまで

  • この辺は無い

レベル100:アーキテクチャレベルでのシンプル設計と性能保証


こんな感じで人類はまだ並列処理の最適解を見つけていない

そのくせに「並列化したら早くなるよね!」っていう人が多いので事故ることが多い

2022-11-24

Twitterが糞コードの巨塔みたいになっちゃうのはほぼ確実かな

Twitter社員がよくわからん基準で次々に解雇され、週報まで求められるようになったとのニュースを読んだ。Twitter社員に対し、明確に「すぐに目に見える成果を出せないやつはクビだ」というメッセージを発している。

こうなると、社員としては受けの良いタスクばかりに集中することになる。具体的には、新機能実装だったり、新しいインフラへの移行だったり、UIの変更だったり。

バグ修正……3週間調査してコード修正は1行だけみたいなのはザラ……は、当然のように優先順位が下がる。というかそういうタスク時間を使っちゃったエンジニアは、自動的解雇される。既存不具合が直ることはもう期待しないほうがいい(いやもちろん、週報読む人が「これは難易度インパクトも大きいバグだったんだな」って評価してくれればいいけれど、期待できないでしょう)。

新しく作られたものも、品質はおそらく悲惨ものになる。コードレビューは手抜きになるだろう。だって自分の実績として週報に書けないし。普通リファクタリング(コードの整理)をしてコードの複雑度を下げてから機能を足したり修正したりするのだが、雑にコードを足すだけになってコードの複雑度が一方的に増加していくようなことになるはず。だってリファクタリングとか人事考課評価されないでしょ。

そもそも、残っている全員が誰もTwitterの持続可能性を気にしていないんじゃないかと思う。ビザホルダーは永住権取るか良い転職先が見つかるまで職を維持できればいいやとしか思ってないだろうし、「ハードコア」に共感した人もなにか一発当てて去っていくことしか考えてないだろう。だから、誰にとっても技術負債なんて知ったことではない。どうせ数年以内にクビになるか転職するし。

心理的安全性のなくなった職場生産性の低下度や、SREがいなくなったことによるサービス品質の低下については、正直なところよくわからない。まぁ、上がりはしないんだろうけど、もしかすると大して影響ないのかも。

ただ、Twitterが糞コードの巨塔みたいになっちゃうのはほぼ確実かな、とは思う。

2022-11-01

anond:20221101000929

リファクタリングができなくなるとか、書いたものリライトが難しくなるとか、そういうイメージだな(こっちは)

とりあえずコンサータはもう滅多に出ないんちゃうけ?

不幸にも例の試験でアウト判定食らって病院通いになった奴なら一度はリタさんとコンサータリクエストするけど

2022-10-27

[]

理系大学四年生だ。とてもじゃないが卒業できそうにない。卒業研究あんまりうまくいってない。

本人のスペックはつぎのとおり。

きほん的に登学しない

PCはつかいこなせる

時間はある程度ある

先輩や先生をたよらなくてもOKでありたい

卒論をかくのに必要な基礎知識をまなぶ気はあまりない。

学生実験ときみたいに課題をあたえられれば、それにとりくむくらいの気力(モラル)はある。

どんなふうに小課題にわけてとりくめばいいだろうか。

とある言語かいてあるコードもっと現代的な言語(PとかJとか)にかきかえるっていうのは卒論としてゆるされるのか?

もっと極端にいえば、リファクタリングしました!ってだけな卒論はゆるされるのか。ゆるされてもいい希ガス

2022-10-04

anond:20221004184511

書き方が悪かったな、すまん。

最初から完璧に」っていうのはシステム全体の仕様の話な。

それにしても、この日本でも最近PJ自動テストとかリファクタリングが多いんだろうな…

2022-09-26

生産性ってなんだろ

ある部分を修正してくれと頼まれとき

という2種類がいるらしく、俺の場合は前者の対応が多いんだが、後者対応をするようなのもいる。まあ開発者個性だけじゃなく状況要因もあるかもしれんが。

「とりあえず終わらせろ」には賛否があるが、リファクタリングがきちんとできるプロセス運用してるなら「とりあえず終わらせろ(そして段階的に修正していけ)」でいい気もするが、「一度書いたら修正が難しいです」とかバカなことを抜かす連中は「とりあえず終わらせろ」という指針でゴミを作ってもらっちゃ困る。

追記: 30分考えて2行削減、というのもある。

2022-08-23

SIer業界にいて不思議だったこ

客が大企業で古いシステムサポートが切れるから新しいものを入れる、みたいなやつ。

なんか新しいシステムを入れるのに、古いシステムのどれだけ満たすか、独自開発がどれぐらいいるか、みたいな調査をするのだけど、なんかアホだなって思ってた。

古いシステムそもそも魔改造されてるわけで、サポートが切れるっていう意味もよくわからず、古いソースコードが急に消え去ったりするということなのだろうか、という疑問があった。例えばJavaフレームワークが古く、アップデートできない状況ならば、なんとかしてリファクタリングするなりして解決したらいいのではって思ってたんよね。

なんで全く新しいシステムを入れて、炎上プロジェクトにするんだろうって思ってた。

2022-08-18

anond:20220818112719

リーダブルコードコードコンプリートを読み読みやすコードの基本を知る

アルゴリズムをきちんと勉強をする

リファクタリング系の本を読みクソコード観を養う

・何か適当要件に沿ったコード自分実装する

 実装後に本のサンプルやOSSなどお手本と自分実装を見比べて改善点を学ぶ

OSS開発に参加してボロクソに叩かれる

2022-06-14

anond:20220614010758

時給1000円だと16万5000円にしかならないのヤバい

まともなインターンでも酷くて時給2000円とか普通で時給3000円なのに、それよりも低い価値しか提供できないのか?

技術検証とか、リファクタリング試行とかインターンやらせたりするが、10年やってもそのインターンよりも低いレベルなのか?

孫請けSIer零細企業だと月給20万円とかい世界があるのかもしれんが、もしインターンより安いのが当たり前だと思うなら転職した方が良い。

クソみたいなJST大手SIer雇用してる低レベルプログラマーでも月100万円/人月で、

月稼働時間が(22日*7.5時間/日=)165時間だとすると、時給6060円だぞ。

200万円/人月だと時給1万円越えるんだぞ。

簡単なことをやるにせよ、

2022-05-24

anond:20220524083518

そのとおり。

だけどマウント取りたいやつらはドヤ顔で「リファクタリング(笑)」するんだよなあ。

一部のベテラン様がそういう性格だと終わりだね。

パワハラもつながるからあっという間に崩壊する。というかしてきたところをいくつか見てきた。

2022-05-01

ラジオ聴きながらプログラミングって難しくない?

ラジオを聴きながら、というか例えば芸人エピソードトークとかの内容をある程度理解しながらプログラミングってできるもんかな?

例えばテトリスしながらラジオの内容理解するのは多分余裕だし、筋トレしながら、運動しながらもまあ大丈夫

掃除しながらとか料理しながらも自分はよく聴く

でも例えば目で小説を読みながら別軸で別の小説を音声で聞く、は多分大多数の人間には無理な気がする。

文章書きながら~もちょっと自分には難しい、複雑な構成を書いていて頭のリソースが書く方に使われている場合は音声で言っている内容の理解度はめちゃくちゃ下がると思う。

プログラミングしながらの場合はどうなんだろう。

例えばプログラミングと言っても「リファクタリングとして○○クラスメソッドをXXクラスに移して決まった法則に従ってメソッド名を変更する作業を100回繰り返す」というようなあんまり知的労働を伴わないような単純作業ならまあ多分できる。

100回くらい同じ仕組みを作ったことあるシステムの構築、とかでもできなくはない気がする。

ただゼロイチでアーキテクチャを構築するとか、調査を含めた不具合解消とか、英語ドキュメント読みながらの検証作業とか、これはもう小説読みながら別の小説聴く、に近いものを求められる気がする。

ただ俺の脳のスペックだと難しい気がする、ってだけで他の人はどうなのかなってのもよくわからん

在宅ワークが増えて「音声で何かを聞きながら仕事をする」ことって昔に比べると増えたと思うんだけど、「プログラマーラジオを聞きながら仕事をする」ってできるものかね?

2022-03-10

anond:20220310132716

アジャイルは優秀な奴がやるから、お前が想像するような酷いレベルリファクタリングは生まれないんだぞ?

基本アジャイルは優秀な人材じゃないとできない。

2021-10-29

程良い難易度で新しいことを覚えて行くのは楽しい

1. Markdown, Textileは知っていた。

2. 「何か新しいことを覚えようかなぁ」というコレクター魂のようなもので、reStructuredTextの手を付ける。

3. Sphinxなるものを知る。PythonからDjangoとか、あの見慣れたチュートリアルを作るドキュメントツールSphinx

4. 面白いのだけど登場人物が多くて話が追えないなろう系のメモとして使ってみる。

5. 慣れた頃に、高校物理数学の復習へ逸れる。

6. LaTeX記法での数式表現、Matplotlibの機能に感動する。

7. 気づくと書き貯めたメモ(rstファイル)が大量に…

8. 索引ページに気づく。

9. 日本語表示がイケてない。微分なら「は」の項目に、積分なら「さ」の項目に表示してほしいじゃん?「微」「積」の項目なんよ。。英語と同じように「頭の一文字」を取ったらそうなるよね。

10. 探してみたら、「Yogosyu」というプラグイン(※Sphinxでは拡張モジュール)があった。使ってみる。

11. 最新のSphinx対応していない。ここからPythonコード解析へと逸れる。

12. 取り敢えずエラーはでなくなったけど、元々索引ページとは関係ない機能だった。同一「用語集」での表示順が日本語対応するだけ。

13. (しばらく放置

14. 「単語の先頭に振り仮名を付け足せば、いい感じにソートしてくれる?」と気付く。

15. 表示の直前で「振り仮名」を取除くために、どこで表示しているか探す。

16. (紆余曲折

17. 索引ページで思ったように表示されて喜ぶ。

18. ここで初めて「プラグイン形式にすれば良くね?」と気付く。

19. 他の拡張モジュールソースを見てやり方を学ぶ。

20. 出来上がって喜ぶ。

21. ここで初めて「これってクラスにしたら、全体の見通しが良くなったりする?」と気付く。

22.(この辺りで、unittestモジュールに手を付ける)

23. テストケースのお陰でリファクタリングが怖くない。喜ぶ。

24. setup.py, setup.cfgの書き方を学ぶ。

25. pypi公開を果たす。誰にも知られずひっそりと…

26. テストケースにjinja2を通した結果も加える。一人で成果に喜ぶ。

27. githubに手を付ける。学ぶ。基本的なことは覚える。

28. スタックオーバーフロー登録モブ参上

29. stack overflow登録モブ参上

30. teratailに登録。コソコソ。「何がなんだか分からない」では質問しないし、そのうちどうにかなることが多い。先駆者感謝

31. toxを知る。学ぶ。基本的なことは覚える。

32. coverageを知る。学ぶ。基本的なことは覚える。

33. circleciを知る。学ぶ。基本的なことは覚える。

34. カバレッジが90%を超えて喜ぶ。←今はこの辺。

※ボッチの日常

2021-09-25

anond:20210924135923

メンテナンス出来ないか効率化するな?カスだね。

気になったやつがリファクタリングするんだよ。

anond:20210924135923

ソース読めば良いだけの話やん

IT会社の火消し要員なんてリファクタリングちゃんとしてるぞ

中身を理解しないまま便利さにかまけてツール使ってる人間が悪い。

どんな道具も技術も磨かなきゃただのゴミだろ。

2021-09-19

anond:20210919092616

複数ファイルに分割し、汎用的な処理だけをまとめたもの

ビジネスロジックの根幹部分を分けてゆく。

シンプルリファクタリング継続して改善してゆこう。

2021-09-04

anond:20210903215430

TypeScript勉強する」が対策として上がってるならちょっと理解できると思うが、

難しい文章理解するために有効手段ひとつリファクタリングだ。

こんな感じ。

主張(a) 「その文章を読む価値があるのか」という想いの度合いが薄ければ、それに応じて文章は難しくなる。

(a)は文章にだけ言えることではない。

コンテンツ理解することは、モチベーションが高ければ容易になる。
 「その難しいことをやるだけの価値があるのか」
 「自分人生の一部という、他にも選択肢がある中での、かけがえのない時間と交換するだけの価値があるのか」
 という部分がモチベーションの高さに結びつく。

# 次のパラグラフ複数の主張が混濁しているようで、主張を明確にできていないように思える
> モチベは時間に応じて減衰していくので実際には習慣をつけるという能力必要だが、
> 点火点であるトリガーではモチベは有能な起爆剤になる。習慣化や自分スケジュールに組み込まれることによって、
> 必要モチベの量はだんだん減っていくこともあり、
> モチベだけがすべてではないが、基本は「価値あるぞ」と思えるかどうかだと思う。

コンテンツ理解すること自体は難しくない。
難しいのは、「それを突破する価値がある」と考えられる(=モチベーションが高い)状態を作り上げることであるモチベーションが高い状態を作り上げることに寄与する要素
 ・自分には突破できるという信念(自信)
 ・それを裏付けする成功体験
 ・たとえ無駄になったとしても人生において問題ないという経済状態
 ・あなたならできると言ってくれる身近な人

上記の要素を揃えることは、難しい。
上記の要素を揃えるためにどうすればいいかは、ここまで読み進めてこられたみなさんならもうおわかりだろう。
# ここまで読み進めても「どうすればいいか」についての記述は無く、
# これは存在しない主張を、さも存在するように見せるレトリックに見える。

2021-09-03

夏休みということで先月18日まで仕事を休んだ。そのあと、今日までいろいろ大変だった。まず1つ目の論文校正(これは出版された)。次に2つ目の論文のリバイス(これは採録許可された)。そのあと3つ目の論文のリバイス(どうなることやら)。とどめが申請書の提出。その間リファクタリングもあったなぁ。やっとひと段落。来週からタスクはあるけど、まあのんびりと取り組もう。のんびりとしよぅ。近い将来3つ論文したことになるから、今年度は打ち止めだわぁ。今晩はゆっくりお酒でも飲もう。飲もう。

2021-06-12

ちょっとプログラミングできる奴が一番うざい

上司しろ同僚にしろ部下にしろ

ちょっとプログラミングできる、っていうレベルの人が一番うざい

というか害悪だしデジタライズするとき障壁

上司に多いのが「所詮コーダー仕事」的思考の人

設計が全てでコーディング作業っていう考え

アジャイル手法理解していても考え方を理解していない

結局彼らの設計したモノは当初の目的からはかなり外れてしま

長い月日をかけて誰にも使われないソフトウェアが完成する

完成する頃にはもう居ない

同僚に多いのは「その言語ちょっとね」とか言う人

自分サーバサイドだからフロントエンドからAIから、とか言ってその分野ばっかりやる人

ぶっちゃけその分野もこっちでやった方が早いしできるんだけど

そうしたら彼らの仕事が無くなるからやらないだけ

自分で蒔いたバグ自分で改修することを毎日やってる

まぁそれはみんな一緒かもしれんけど同じことばっかやってて成長しない

部下に多いのは「動いたからいいでしょ」的な人

最近Qiitaにも多いけど「こうしたら動きました」って言って内容理解してない人

これってどういう意味?って効いたら「コピペしてきました」って言う(意味を聞いてるんだが)

大抵は冗長かつ不十分な実装になっててしばらくして動かなくなる

もしくは自分で考えたであろうスパゲッティになってて

リファクタリングとかの作業でほぼフルスクラッチする

まぁ誰しも通る道だとは思うので丁寧に指導はするけれど

何年もそんな感じだとちょっとイラッとくる

2021-05-29

スクラムけがアジャイルじゃない

アジャイルソフトウェア開発宣言』の価値観に反対する人はほとんどいないと思う。

私たちは、ソフトウェア開発の実践

あるいは実践を手助けをする活動を通じて、

よりよい開発方法を見つけだそうとしている。

この活動を通して、私たちは以下の価値に至った。

プロセスツールよりも個人対話を、

包括的ドキュメントよりも動くソフトウェアを、

契約交渉よりも顧客との協調を、

計画に従うことよりも変化への対応を、

価値とする。すなわち、左記のことがらに価値があることを

認めながらも、私たちは右記のことがらにより価値をおく。

かつて、数々のアジャイルな開発手法存在して(というか今も存在しており)、この宣言はそれらの開発者が集まって合意したものだ。

ところが、最近ではスクラムけがもてはやされ、他の手法に全く触れられないことに違和感がある。

また、「うまくいかない原因の根本そもそも開発チームの問題なんだっけ?」って問題のもの議論せず、スクラムだけを導入すれば解決すると思い込まれていると思う。

スクラムへの違和感

私がスクラムについて違和感を持っているのは以下のような点だ。

※ただし、開発チーム以外を変えなくても導入できるのはメリットでもあり、それでチームの負荷を下げつつ他の問題対処するのは悪い手ではないと思う

一方で、例えばXPは「開発が成功するためにチーム内外に向けてなんでもやれ」という視点が強く、「ビジネス上と技術上の責任を分ける」などのアドバイスの章も用意されている。

ただその分「ここに注意せよ」くらいしか書かれておらず、結局どうやるかは自分たちで試行錯誤しなければならないことは変わりがないが。

スクラム(というか開発手法全般)を不適切に導入した後の最悪のケースは、本当は他の要因で問題が起きているのに、その分析が全く行われずに、開発チームにだけ際限のない改善要求されることだ。

例えば「みんなリファクタリングをしなきゃいけないことに気づいており、それが評価されないか新規プロジェクトに力を入れざるを得ない状況だと知っているが、それを誰も口に出さない。その状態で正確な見積もりをしようとしたり、開発スピードだけ効率を上げようとする」という状況は誰もが身に覚えがあると思う。

主張したいこと

まり、我々の所属するソフトウェア開発チームでは、目の前に存在する問題対処してアジャイルチームになることが重要で、その方法スクラムで主張されているような開発手法とは限らないし、むしろそのわかりやすさやきれいなドキュメントミスリードである場合もある。

そのためには、まず現実課題が何なのかしっかり把握して、フェアに議論することから始めるのが重要なんじゃないか

参考文献


2021-04-01

作業実態がほぼない先輩エンジニア

自分とある地方IT企業に勤めている。

最近自社で利用してる社内サービスの大型改修があるということで別案件に配属されたのだが、

そこに元から配属されてた先輩エンジニアコミットログがどうにもおかしい。

先輩は数ヶ月くらい前から俺が担当するのとは別の新機能を3つほど任されてたのだが、

この新機能というのは実態としては別で運用されてる類似サービスとほぼ同機能で、使ってるフレームワークとかも同じ。

相違点はあれどほとんどは項目が減る、とか不要機能がなくなる、みたいなところが中心で、大体はコピペで終わるはずだ。

複雑にデータ依存しあってるとか項目数が膨大とかそういうこともなく割と単純なCRUDだけのよくある管理機能

正直自分ならユニットテストとかリファクタリングとか含めても3つ合わせて1日もあれば終わると思う。

その単純な新機能の開発に何故か先輩は数ヶ月かけていた。

毎日投稿される作業報告書を見るに、それ以外の作業実態ほとんどないみたいだった。

コミットログには、自分が出社して朝礼が始まるまでの5分くらいの間に終わる程度の修正を超細切れに2~3日に数回くらいコミットしてそれっぽく見せていた。

これは完全に社内の体制問題なのだが、今たまたまその部署にいる上長あんまり実態工数感とかわかってない人で、

んでその上社運用サービスってことで納期とか突っつかれることも少ないか適当に口でごまかして今の状況を作り上げたようだった。

ちなみにやってることは「保守要因だから待機が仕事なんだよ」っていうわけでもなく、ガチ業務時間の99%くらいYoutubeやらまとめサイトやら見てんじゃねえのって感じ。

うーん。。。。

だって在宅勤務中に一切Youtubeも5chも見なかったって言ったら嘘になるよ、いやぶっちゃけ割と見てる側だよ。

監視がないのを良いことに犬と散歩出たりお昼休み気持ち長めにとってちょっと遠めのレストラン行ったこともあるよ。



いやにしたって1日の作業に数ヶ月とかかけるのはいくらなんでも攻めすぎだって。。

俺は一応突っ込まれて困らない程度には成果物出してると思うよ。

ここまで極端だと「あの人数ヶ月ほぼ作業実態ないですよ、証拠はこれで~」とか誰かが上にチクリ入れたらどうするつもりなんだよ。

別に俺に実害はあるようなもんじゃないんだがどうすっかなぁ

2021-03-22

高知能者向けの定型業務仕事ってないのかな

定型業務仕事は日々責任時間に追われて正解のない問題に取り組み続けなきゃいけないのがしんどい

かといって定型業務仕事は中~低知能者の労働者マジョリティコミュニケーションしんどい

(べつにバカにしているわけでなく、むしろこちらがマイノリティ障害者っていう自覚はある。IQに差があると会話が成立しづらいって話よくあるよね)

高知能者向けの定型業務があれば迷惑をかけずに済んで三方良しと思うんだけど

いか

---

追記

なるほど、リファクタリングマンデプロイマンは良い線行ってるかも

まあそういうのって社内の手が空いてる誰かが自然となるやつであって、改めて新規人材募集するようなモンでもなさそうだけど

ログイン ユーザー登録
ようこそ ゲスト さん