タイトルを見てこの質問を見てくださりありがとうございます。
タグを見てこられた方、内容と異なることがあります。申し訳ございません。
質問する内容先が少々間違っているのかも知れませんが、皆様のご意見を聞けたらと思います。
プログラミングをしていると毎回使うようなコードがあると思います。
関数にするようなものではなく(処理をする上で関数化できない)、雛形というのでしょうか、テンプレートというのでしょうか、決まりきった形があると思います。
例えばですが、私は職業上C言語の組み込み系のソフトを作成しているので、
プログラミングをしていると、「これはあの時使ったコードが使えるな」ということが多々あります。
そのつど、その時作成したソースをみてコピペしてくるといった作業をしています。
しかし、中には「何に使ったか忘れた」というものも多く探すのに手間取ったり最終的に書き直すこともあります。
上記にて関数にできないと述べていることに関しましては、
装置ごとによっては丸々流用できない、一部を変更しなければならない、また社内ルールにより基本的に関数を増やさない(増やすほどのものでもないものもあれば、割り込みの関係でやってはいけない→破損するため)ということもあり、毎度何かよい方法はないかと思い模索していました。
そこでメモ帳に保存してみたり、エクセルに保存してみたりとしてみたのですが、いまいちパット出てこない、または見にくいとの事があり却下されたりしました。
コードにも大きく分類できるので分類できたらと思いエクセルを利用して項目ごとにシートを分けて使いたいものをクリックするとVBAが起動しそこにソースがあるというものも作成してみたのですが、
・新しく追加する際に手間がかかる
・変数など毎度エラーをはかれるので使いにくい
・容量が大きすぎて使いにくい
などとのことがあり却下。
そこで皆様に質問です。
作業効率を上げるために皆様はどのような工夫をしていらっしゃるでしょうか?
フリーソフト、自作ソフト、様々なものがあると思いますが、個人使用ではなく、誰かと共有しなければならないという時になにかよい方法などがあればご意見をお聞きしたく思います。
しつこいようですが要点をまとめますと
・ソースコード(雛形・テンプレート)を管理、保存したい
→変更が必要な箇所(例えば変数名・符号)もありあくまでも雛形を保存したい
・分類分けをしたい
→例えばですがエラー検出、PID制御など
このサイトの趣旨とは少し外れているかもしれません。
他所で聞けと思う方もいらっしゃるかもしれません。
気分を悪くしてしまったら申し訳ございません。
技術の向上、作業率の向上にご協力いただければ幸いです。
また、私の知人にも相談したところ同じ様なことは思っていたとの事でした。
私以外にも同じ事を考えている人はいるようなので、この質問からよい結果が出せたらと思います。
長文失礼いたしました。
何卒よろしくお願い致します。
追記
ベストアンサーを選択させて頂きました。
皆様の回答がどれも私的にはベストアンサーで選択に迷いましたが、
最終的な目標として選ばせて頂きました。
中では学習時間といったご回答を頂きました。
確かにおっしゃる通りかもしれません。
今は「業務に取り組むことが学習、教材などはなく分からないものは個々で学習」
というのがあるような気がします。
確かに個々のスキルはあがりますがこのままだと組織としてはよくないですね。
スニペットの存在やオープンソースプロジェクトでこのようなものがあると
いうことが私的にとても大きくまさしくこれらを求めていたような感じです。
一応、独自技術?にあたいするものになるので秘守性は高くなければならなく外部には漏れないようにしなければならないのですが対策もありそうで安心しました。
まずはスニペットから始まりオープンソースプロジェクト系のものへ移行できると
いいかなと考えています。
調べ進めた中で、いきなりの導入は難しいと考えたためまずはオフラインでこつこつとはじめてみようかと思います。
その中で、ほぼ固定になるものが出てきたら関数化していくなどの方法が現状のベストになるかと思います。
回答を頂いたように関数の作成にも意欲的には取り組んでいこうと思います。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
+2
社内ルールにより基本的に関数を増やさない
この部分が引っ掛かります。
もっと詳しくお話しを聞いてから判断すべきかもしれませんが、社内ルールの点がひっかかりるため、独断にて厳しめな意見をいうと、nodactさんの職場では、コーディングに関して業務時間内外問わず、書籍などで学ぶ環境がないのではないかと心配しております。基本的には、コーディングをする全員が学ぶ必要があります。
なぜ、このようなこと書くかというと、2つあります。1つは、私がそのような職場にいたことがあること、もう一つが、関数を共通処理のためという考えをしていることです。
関数は共通処理を行うためにあるのではありません。処理を一定のまかたりにまとめ、コードを見やすくしたり、テストしやすくしたりして、バグのないコードを書くための基本テクニックです。
関数を作らない環境の方だと、関数を増やすと処理が追いづらくなるといった意見が出るはずです。その点は間違いなく慣れの問題で、適切な関数の分割と適切な関数名をつけるようになると処理のタイトルが羅列してあるコードのように見通しが良くなります。
また、エラー処理などの環境依存が強い部分はオブジェクト指向やコールバック関数(関数ポインタ)などを使えば、共通処理化できるはずです。(はじめはコピペで仕様が固まったら共通関数にしてもいいと思います。)ユニットテストツールを使えば、現行の機能を維持したまま、機能追加もできます。
この点は、実際やってみないと実感できないかもしれませんが、まずは共通処理のためでなく、読みやすさのために関数を作ることをはじめて見ることを強くお勧めします。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
checkベストアンサー
+1
わかります。とてもよく。
組み込み系では特に、組み合わされる各種デバイスの型番、シリーズごとに、ポートI/Oの手順や処理すべきエラー状態など、高いレベルでパターン化とコードの再利用が可能ですよね。
コードの断片(スニペット)集を、チームや全社で共有して育てていく(DBなどに人力で追加や改訂していく)方法がすぐに思い浮かびますが、実際にやってみるとなかなか難しいですよね。ソースコードの検索システムが有効だと思います。コメントの入れ方等は社内やプロジェクト毎に規定を作って運用されていらっしゃるでしょうから、検索システムを意識したルールを取り入れることができれば、より効果的ではないかと。
社内文書をgoogleのように検索したい、というニーズに応えるオープンソースプロジェクトはいくつかありますが、最近の主流は Groonga とか Elasticsearch あたりでしょうか。
あと、ネット検索したところプログラムのソースコード検索に特化した製品で CodeDepot というものがヒットしました。コピペ先ソースファイルを検索出来たり、CVSやGitなどのバージョン管理システムにも対応していたり、役立ちそうな機能を持っているようです。トライアル版もあるようなので、試してみたらいかがでしょうか。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
スニペットそのものではないですか?
いろいろツールも出てきますよ。オンラインサービスから個人的な利用まで沢山(^o^)
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
・ソースコード(雛形・テンプレート)を管理、保存したい
→変更が必要な箇所(例えば変数名・符号)もありあくまでも雛形を保存したい
・分類分けをしたい
→例えばですがエラー検出、PID制御など
いわゆるsnippetツールのようなものをお探しでしょうか?
コードスニペット ツールのまとめ(比較) | 4★star
↑こちらなどは参考になりますか?
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
+1
ドキュメント管理システムを使ってみるとよいかもしれません
・ソースコード(雛形・テンプレート)を管理、保存したい
ソースコードも一種のドキュメントです
全文検索もできるのでなんとなく覚えている一部のコードからもひっかけられます
・分類分けをしたい
ドキュメントにタグ付けで対応できます
あと外だししても構わない(秘伝のタレ的な要素が少ない:組み込み系って結構こういうのってありますよね)ようであれば、マネタイズしておいたCMS(WordPressなど)で構築しておくとついでにお小遣い稼ぎもできますね
あまり参考にならないかもしれませんが..
マネタイズしておいたCMSの部分は個人的に実践していて、アクセス解析も仕込んでいるんですがその分析結果を見るのも面白いですよ
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.33%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる