1 名前:デフォルトの名無しさん mailto:sage [2016/10/16(日) 08:01:30.20 ID:NOg6ZxxU.net] クラス名、変数名のつけ方に悩んだら書き込むスレです。 命名規則や設計の善し悪しについて議論するのは基本的に禁止。 前スレ クラス名・変数名に迷ったら書き込むスレ。Part26 echo.2ch.net/test/read.cgi/tech/1450622191/
809 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 03:20:14.72 ID:myS7jj1C.net] 英語圏でも、違和感あるけど命名規則を統一した方がいいって意見があった stackoverflowで探せば議論があるよ
810 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 04:13:54.49 ID:wvO4PFpl.net] クラスメソッドってクラス名を名前空間的に使うやつだっけ? それなら「クラス名を主語とした文章にしない」かなあ。 もちろんクラス名なのかインスタンスなのか見て分かるような仕組みが必要だけど。 あとは「疑問形」型の命名でもいいと思う。
811 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 04:36:19.26 ID:myS7jj1C.net] こう考えればおかしくない returns true if the integer is positive.
812 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 11:55:03.36 ID:wvO4PFpl.net] >>799 その方法だと文章がおかしくなるって話なのよ。 positiveかどうか聞きたいのは Integer じゃなくて x なわけだし
813 名前:デフォルトの名無しさん [2017/02/05(日) 11:59:43.30 ID:5WbgBuL/.net] お前らみんなコボラーだろw
814 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 12:43:02.98 ID:8HS86KpH.net] PERFORM SUCHI_CHECK_B002.
815 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 13:00:08.30 ID:myS7jj1C.net] >>800 the integerだよ その整数が正ならtrueを返す その整数、つまり引数x
816 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 13:28:23.23 ID:myS7jj1C.net] 無理やりっちゃ無理やりだが
817 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 15:43:15.88 ID:zezXTZq3.net] みんなありがとう インスタンスメソッドの場合と同じ名前にするっていう意見が多いのね たしかにクラスはモノそのものじゃなくて種類とかだから クラスが主語になるのはそれはそれでおかしいのかもだし
818 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 16:07:41.42 ID:JJBphtlB.net] IntegerIsPosivive : ISpecification<int> { ... } var spec = new IntegerIsPositive(); If(spec.IsSatisfied(value)) { ... }
819 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 17:40:46.59 ID:nRtV/D8r.net] >>805 クラスもオブジェクトの一種である、っていうのが普通のOOPの考え方だとは思うけどねw それはともかく、この話題になるとオブジェクトを主語とする英文の動詞をメソッド名にすべきだっていう 原理主義的な人が必ず出てくるけど、それは自分の手足を縛るだけのくだらないこだわりだと思う。 もっと柔軟に、別に引数が主語になるようなメソッド名でもいいし、 現にそれは使われていて混乱も起きてない
820 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 18:34:05.03 ID:wvO4PFpl.net] >>803 ああ、なるほど。確かに無理矢理感は残るが、説明はできるな
821 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 18:50:24.23 ID:zezXTZq3.net] >>807 モノ、という言い方が悪かった。 オブジェクト指向の文脈でモノ=オブジェクトだわな。 >>798 の「クラス名を主語とした文章にしない」に対して、 クラスが概念みたいなものを表す場合には動作の主体みたいに書くと 自然言語としては変な場合もあるからそのほうがいいかもね、というようなことが言いたかった。
822 名前:デフォルトの名無しさん mailto:sage [2017/02/08(水) 12:47:06.97 ID:phT3UyOg.net] $user->follow() これがフォローするメソッドだとすれば、フォローされるメソッド名はどのようなものが良いと思いますか? isFollowedByはチェック用として使っているので、それ以外であれば
823 名前:デフォルトの名無しさん mailto:sage [2017/02/08(水) 13:26:18.28 ID:QVHu+PfB.net] 受動的というかイベントっぽい感じがするからOnFollowedとか?
824 名前:デフォルトの名無しさん mailto:sage [2017/02/08(水) 15:36:31.95 ID:1GvtCO/d.net] >>810 addFollower
825 名前:デフォルトの名無しさん mailto:sage [2017/02/08(水) 20:16:29.71 ID:6Dg3FALd.net] >>810 > フォローされるメソッド って何をするの?
826 名前:デフォルトの名無しさん mailto:sage [2017/02/08(水) 20:24:43.98 ID:QoBdKQyS.net] >>812 これ
827 名前:デフォルトの名無しさん mailto:sage [2017/02/09(木) 19:05:47.40 ID:m/rQHIL4.net] silicon_greaseのgrease(グリス)みたいな不加算名詞の複数はどう表現すればいいんでしょう データベースのテーブル命名で悩んでいます
828 名前:デフォルトの名無しさん mailto:sage [2017/02/09(木) 20:47:57.56 ID:wAatsUnZ.net] >>815 テーブル名ならそのまま grease table でいいんじゃね? 複数入ってるのはわかるし
829 名前:デフォルトの名無しさん mailto:sage [2017/02/09(木) 22:32:43.45 ID:OzXksFO3.net] greases
830 名前:デフォルトの名無しさん mailto:sage [2017/02/09(木) 22:55:45.38 ID:2Ay8HMWw.net] DBのテーブルやカラムは単数形ってイメージあるな あくまで個人的な感想
831 名前:デフォルトの名無しさん mailto:sage [2017/02/09(木) 23:23:50.63 ID:WFUDbJHK.net] >>818 社員テーブルでもいちいち employees とかしないしな
832 名前:デフォルトの名無しさん [2017/02/09(木) 23:59:44.64 ID:W9c8fNbT.net] うちはシャインズにしてる
833 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 01:38:25.85 ID:eXuE+DWe.net] お笑いコンビかよ
834 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 03:49:01.03 ID:JAXwIh9x.net] 普通の変数は単数形、配列やコンテナは複数形にするって人は珍しくないけど それはあくまで区別のためで、DBは最初から複数データが入る前提だからってのもあるのかな?
835 名前:821 mailto:sage [2017/02/10(金) 03:51:28.92 ID:JAXwIh9x.net] 書き込んでから気付いたわ DBのテーブル設計上、1つのフィールドに複数のデータを入れなきゃならない場合があって そういうとき単数形を原則にしておくと、特定のフィールドだけ複数形にできるメリットがあるな
836 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 07:04:05.80 ID:KfJ87yGf.net] フィールドはレコード単位で考えることが多いから普通は単数形でしょ
837 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 07:14:40.33 ID:R8SjjpuZ.net] >>823 そんな設計はない
838 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 07:19:15.11 ID:t9i0eRDr.net] >>825 postgresならありえるんじゃね?
839 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 07:24:40.17 ID:7mXc6D7Y.net] ドカタの日常やで
840 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 21:32:12.68 ID:JAXwIh9x.net] >>825 「SQLアンチパターン」に、状況次第で使っても良い例として載ってた気がする
841 名前:デフォルトの名無しさん [2017/02/10(金) 22:49:22.64 ID:Tmi1uInj.net] 何が良いか悪いかは俺が自分で決める お前らだってそれでいいんだぜ
842 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 01:42:14.70 ID:NjUW0EqN.net] 英語の略語は使っていいですよね? cpuとかclsとか。
843 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 02:01:43.52 ID:b1Q6karq.net] いいと思うよ。 ただし意味がどの程度明確か(どの程度普及している略称か)、 あるいは変数の寿命はどれくらいかによる。 例えばCPUは、正式名称にされると逆に分からなくなるタイプの語だろう。 CLSはコンピュータ関連に限っても複数あるらしいので難しいだろう。 逆にどんなマイナーな略語であっても、十分に短い関数の中とかで cls = new CoolLuckySuteki(); とかなら何も問題ないだろう。
844 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 12:59:06.83 ID:Z2oJz4Ts.net] Dim x As Hoge Set x = New Hoge() ってあるとしてこれをトークンに分割した時にそれぞれに適当な名前を付けたい どんな感じがいいだろうか Dim -> ? x -> identifier As -> ? Hoge -> identifier Set -> command ? identifier ? = -> operator New -> command ? identifier ? operator ? ( -> operator ) -> operator
845 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 13:11:57.20 ID:ArXTdjPj.net] >>832 パーサならtoken_dimとかtoken_setのようにそのまんまの名前にするのが普通だと思う xやHogeはidentifier
846 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 13:23:19.58 ID:UqEwFB/d.net] >>832 VB6の仕様書見た方が早いんじゃないの?w https://msdn.microsoft.com/ja-jp/library/office/jj692818.aspx
847 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 13:45:24.35 ID:UqEwFB/d.net] でもVB6はNewする時型名の後に()はつかないよな https://msdn.microsoft.com/ja-jp/library/office/gg251642.aspx
848 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 14:18:49.77 ID:VLfM/32P.net] >>832 > = -> operator VB 系の言語ならトークンにした段階だと Let A = B と If A = B で意味が違うからそこは普通に TokenEqual とかの方がいいと思う Operator と判断するのは構文解析のあと また Dim, As, Set 等がキーワードなら >>833 の言うように TokenDim とか KW_Dim とかかな
849 名前:829 mailto:sage [2017/02/11(土) 19:00:42.88 ID:NjUW0EqN.net] >>831 ありがとうございます。 使います。
850 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 21:38:23.15 ID:IgjSYxMt.net] 構成、組み合わせ、といったものはどう表現するのでしょうか 例えばパソコンのパーツの「OSはこれで、CPUはこれで…」といった組み合わせを、どう変数名にすれば良いでしょう computer_structure computer_constitution だとちょっとしっくりこないし… computer_recipe レシピが一番しっくりくるでしょうか (できれば、Partsという単語は使いたくないです)
851 名前:デフォルトの名無しさん mailto:sage [2017/02/11(土) 21:51:53.20 ID:/5e0Kihi.net] >>838 configuration
852 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 00:05:00.60 ID:WbUDQsun.net] >>838 型名じゃなくて変数名? それってどんな型なの? まさか文字列?
853 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 00:11:47.05 ID:QFyd4EUF.net] >>840 変数名と若干抽象的でしたが、実際にはクラス名やテーブル名でも使われます
854 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 00:29:45.70 ID:WbUDQsun.net] Windwosのmsinfo32やsysteminfoで列挙されるような情報を詰める型なら そのまんまSystemInfoでいいんじゃない? 何にしても話が曖昧すぎると名前つけようがないよね
855 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 08:44:22.20 ID:H5U2vUxz.net] configurationが近いと思うけど、結構多義的な語でもあるので hardware_configurationくらい限定した方がいいかも
856 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 18:43:37.53 ID:foFsLAUJ.net] 略すならconf? config? ローカル変数ならcfgでもいいんだろうけど どうでもいいけどconfigurationのuをいつも付け忘れる
857 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 18:50:13.70 ID:ashgYgUc.net] config .confとかならわかるけど 一般的なプログラムでその2文字を節約する価値がある場合って今はほとんどない気がする
858 名前:デフォルトの名無しさん [2017/02/12(日) 18:56:41.66 ID:amMPaDhL.net] confってのは省略というより今やコンピューター業界の一般名詞になってる 常識の問題
859 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:00:54.66 ID:X3Hv2qUV.net] >>838 compo_combo
860 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:22:13.26 ID:QFyd4EUF.net] 商品の数量(int)を格納するテーブルカラム名は ・product_amount ・product_quantity どっちを選べばいいんですか
861 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:24:41.82 ID:QFyd4EUF.net] >>848 MISTAKE SORRY
862 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 19:31:16.91 ID:RQ58gzfk.net] >>848 抽象的すぎる 在庫なのか販売数なのか発注数なのか それを名前にしたらいい
863 名前:デフォルトの名無しさん [2017/02/12(日) 19:37:32.03 ID:amMPaDhL.net] 在庫なのか販売数なのか発注数なのかわからないテーブルって何テーブルだよ
864 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:17:27.96 ID:z9rqQBda.net] >>846 なってないでしょ むしろ昔のUNIXやCの時代の悪弊の一例としか思えん
865 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:28:44.11 ID:vM2j5Kno.net] >>846 config
866 名前:デフォルトの名無しさん [2017/02/12(日) 20:30:50.41 ID:amMPaDhL.net] >>852 そう習ったのかもしれないけど 今でも当たり前に使われているんだよなあ
867 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:36:11.30 ID:IjteT4RE.net] >>854 ejje.weblio.jp/content/conf
868 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:36:37.36 ID:RQ58gzfk.net] それより設定をconfigurationっていうのやめてほしい そのお陰で>>838 の意味で使いづらいんだよ 設定はsettingsがあるんだから出しゃばらないでほしい
869 名前:デフォルトの名無しさん mailto:sa
[] [ここ壊れてます]
870 名前:ge mailto:2017/02/12(日) 20:37:04.14 ID:vM2j5Kno.net [ >>854 わざわざ曖昧な単語使うなよバカ ] [ここ壊れてます]
871 名前:デフォルトの名無しさん [2017/02/12(日) 20:39:33.59 ID:amMPaDhL.net] >>857 偉大なる先人達にそれを言ってるのだとしたらバカなのはお前の方
872 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:44:23.89 ID:vM2j5Kno.net] >>858 どう考えてもお前に言ってるだろカス
873 名前:デフォルトの名無しさん [2017/02/12(日) 20:46:38.11 ID:amMPaDhL.net] >>859 あ、そうなのかw言い慣れてないもんですまんなw 2chて新鮮だね
874 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 20:55:51.63 ID:yxF5W3i1.net] >>848 quontity かな m.chiebukuro.yahoo.co.jp/detail/q1365896038
875 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 21:58:56.35 ID:ashgYgUc.net] >>848 quantity でも>>850 の指摘について先に考えたほうがいい気がする 個人的にはproduct_ってのもちょっと引っかかる
876 名前:デフォルトの名無しさん mailto:sage [2017/02/12(日) 23:49:32.56 ID:6Sk2Uqtp.net] congratulation
877 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 19:44:14.93 ID:SeGoKVuK.net] quantityも紛らわしいわ 小麦粉のquantityが500と言われたら500gをイメージしてしまう
878 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 20:27:27.82 ID:F7tWYx14.net] quantum
879 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 21:02:11.50 ID:s/tywzZZ.net] >>864 それでなんの問題があるんだ?
880 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 22:21:20.23 ID:tn7uWAuX.net] >>864 食品パッケージとかに書かれてるのは普通net weightだな ”
881 名前:商品”を扱う文脈で単にquantityと言って内容量を意味するのはかなり特殊だと思う 500gの小麦粉2個セットで1つの商品アイテムとして扱うみたいな状況で その2個を示す数量ならquantity per setとか [] [ここ壊れてます]
882 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 16:51:07.77 ID:8Vu7a7JH.net] fetchProducts(複数) fetchProduct(単数) この見分けが鬱陶しいから代替案教えてくれ…
883 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 17:22:51.99 ID:PdY4D7f4.net] 明示的にArrayとかListとかSequenceとかつける 前も書いた気がする
884 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 17:33:50.13 ID:8Vu7a7JH.net] >>869 すまん なるべく単数のネーミングを変えたいんだが、 fetchSingleProduct以外に良い案あるかな? eachはあんまりふさわしくないか
885 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 17:57:31.84 ID:PdY4D7f4.net] Singleでいいんじゃないでしょうか 一番いいのは>>868 のまんま使うことだと思うけどw Oneとかつけても馬鹿っぽいしUniとかMonoとか混乱するだけだし...
886 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 18:06:23.39 ID:1QNRYi8s.net] どっちもfetchProductsで引数変えればいいじゃん
887 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 18:36:07.85 ID:gfvqdCIF.net] 複数にAllとかの修飾子を付けたほうがわかりやすいじゃ? 単数は見つかった最初の一つなのかキー指定で必ず一つになる条件なのかみたいなのでも変わるし 引数の名前も合わせて考えたほうがいい
888 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 19:01:01.50 ID:uUAiAa64.net] Productクラスを作れば、Product.fetch()とProduct.fetchAll()で何も悩まなくて済む。
889 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 19:32:13.21 ID:KOYliiZd.net] >>872 そうするなら俺なら fetchProduct( ) にするかな
890 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 21:54:46.37 ID:KoPUq/lv.net] fetch get find search
891 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:56:45.74 ID:AAACSty6.net] https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160307/012004.html Swiftが辞書に載っていない"failable"とかいう言葉を文法用語(failable initializer)に採用した経緯
892 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 19:27:36.19 ID:PR7YLHWZ.net] 変数名って大事だったんだな 識別子が全部管理用IDで可読不能なシステムに当たってしまった ほんとどうすればいいんだこれ
893 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 20:22:58.38 ID:moduTScb.net] >>878 保守で稼ぐつもりなら有効な方法だよ それだけで保守工数を大幅に水増しできる上、客を囲い込める
894 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 20:25:13.66 ID:dbhoX2Op.net] おとなきたない
895 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 21:48:41.40 ID:uGJVx5D1.net] >>878 管理用IDに紐づく名前の辞書をつくってインテリセンス的なもので表示する もしくは一旦書き換えてビルド時にまた書き戻すような処理を挟む
896 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 22:24:39.33 ID:tEvJ6jqw.net] グローバル変数だらけってことかw
897 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 08:10:29.45 ID:Ht7v5Bb2.net] スコープごとに識別子が違う可能性も
898 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 08:10:00.78 ID:wuMjIvih.net] >>878 ソース盗まれても被害最小限にするように そんなPJもある
899 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 17:33:54.86 ID:o+Dr+01e.net] グローバル複数置換マクロが捗りそう
900 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 19:17:14.72 ID:vLzxteC2.net] 盗まれたら困るほど大事なソースを保守不能にしてどうすんだよ
901 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 13:37:00.81 ID:hi52G3un.net] リストに表示される/されないってどう表現する? appearsInList? showsUpInList? displaysInListだとdisplayが自動詞だし変かも
902 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 13:37:58.33 ID:hi52G3un.net] displayは他動詞だった だからと言って過去分詞にしてwillBeDisplayedInListとは普通はつけまい
903 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 13:48:32.67 ID:Gq5Dbfze.net] ListItem.Visible = booleanValue; 名前に迷ったらまず構造を見直そう
904 名前:デフォルトの名無しさん [2017/03/18(土) 13:51:18.75 ID:3z3tSwvl.net] 通常はリストに表示されるが、非表示にしたい場合もたまにあるというなら hidden を使うといいのでは
905 名前:デフォルトの名無しさん [2017/03/18(土) 13:53:21.94 ID:8MFf4E1I.net] test
906 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 14:11:31.89 ID:hi52G3un.net] ありがとう 大半は表示するからHiddenで良いかも Visibleがリスト項目に使われることもあるみたいだし
907 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 14:19:37.59 ID:6cW+qOXP.net] >>886 盗まれたら困るほど重要なソースはどれだけコストがかかろうが保守はされるから、 むしろ保守性が低ければ低いほど工数が増えて客から搾取できるんやで
908 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 14:27:45.52 ID:Gq5Dbfze.net] >>893 バカだな 国際競争力失って全体が下がるだけ
909 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 11:07:45.44 ID:7RBNWPmY.net] Address Id ZipCode 都道府県 市区町村 ビル名部屋番号など 下3つの明快で短い英語名は?