はてなキーワード: 拡張とは
コードの重複があるわけでもない状況で、コードを関数ごとに分離するメリットデメリットを知りたいという話ですよね。
コードの重複がある場合に関数などに切り分けていないと、同じコードを何度も書くことになり、不具合があった時にコピーされたすべての個所に変更が必要となるというデメリットがあるので理由がわかりやすいですが、重複が無いとその点が不明確ですね。
画面に収まらないサイズのコードは複数の関数に分割するのが一般的だとは思います。
理由は元増田も書かれている通り、長いと理解の限度を超えるからです。
コードは意味があるまとまりで短ければ短いほど理解がしやすいと思います。
グローバル変数を使わないようにすると、入力・出力が関数を読むだけで明確にわかるので、さらに理解がしやすいです。
また、関数に分けておけば、関数が仕様通りに動くかの確認するユニットテストも簡単に書けます。
ユニットテストでは関数がさらにほかの関数を呼び出している場合、呼び出される関数の代わりにテストダブルを用意することもあります。
分割して、複数の関数を呼び出すようにすることのデメリットは、
下手糞が切り分けるとなんでそういう切り分けになったかわからないところで切り分けられてかえって可読性が損なわれるとか、
関数の機能が拡張してより多く・あるいは少なくの情報が必要な時に関数インタフェースの変更が必要になることとか、
関数を置いているファイル内の場所を変えたときにバージョン管理システムが追っかけてくれないことがあるとか
くらいでしょうか。
いずれにせよ、分割するメリットの方がデメリットを上回ることが大半なので、大抵は機能ごとに分割して小さい関数を作り、それをメインからは呼ぶようにすると思います。
まず、関数の名前をやっている工程を表すものにすることですね。
「データの取り込み」 とか 「データの突合せ」とかを明示すると、それを呼んでいるということはそういうことをしてくれると思うので。
また、関数が何をしてくれるのかも関数のコメントとしてつけておくとよいと思います。
例えば、
filename引数で指定されたファイルからデータを取り込み、JSONフォーマットで返す
返値: JSONフォーマットされた取り込まれたデータ。例: [{'employee name': '山田 太郎', 'employee id': 1}]
例外: filenameを開けない場合はFileOpenError、JSONにコンバートできなかった場合はConvertError
みたいなコメントをつけておくと何をする関数なのかわかるので、その機能を調べたいとき以外は読まないでいいかなと。
あと、コードを連続で読みたい場合、ソースを解析してタグジャンプをつけてくれるツールやらIDEやらを使うことが普通だと思います。
これはどういう意味でしょうか?同じものを表すのに関数ごとに別の変数名を付けているとか?
もしそうだとしたら、使っているプログラミング言語の制約やプログラミング規約によるものなのでしょうか?
ある関数のローカル変数が他の関数のローカル変数に影響を与えることは無いはずなので、ローカル変数は大抵適当な名前が付けられるイメージです。
今時のプログラミング言語なら変数のスコープが関数の中にとどまるような書き方ができると思うのですが。
関数インタフェースを定義し、そこにいちいち引数を書くのが面倒というなら...まあ、それは必要税って感じがします。
そこに引数を書いておくことでこの関数が何に影響されるのかわかるので。
参考までに。
https://gigazine.net/news/20231214-microsoft-xbox-japan/ を読んで考えたこと。
結論としては、WinPC含め「ユーザー・開発に、SONYかMSかで、片方だけを選ぶ必要があるときに、選ばれる状況にする」ことを目標に動くしかないと思う。
日本の場合、任天堂ソニーが鍔迫り合いでシェアを取り合ってる中で「両方を買って、その後の3番目の選択肢」になってるから、それはシェア負けるよね、になる。
かといって新ハードで勝つのは現実的ではないと思うので、圧倒的にシェアを取っているPC市場からどうにかして有利な戦略を持っていくしかなさそう。
一応蛇足で、自分の過去の家庭用ハード機対決の認識。「360(初期~中期)」の時に何とかしてたら違う未来はあたかもしれない、くらいかなぁ。
・360(初期~中期)→PS3側の不手際やMSの戦略(開発者優遇)からPS3と拮抗。
・360(後期)→後期は、PS3がハード/ソフトの両面で持ち直し、360がHDDが標準搭載でないなど、開発者側も離れていった。
・one→構成自体はPS4に近いものがあるが、xboxの独自拡張に対し、PSが実直に開発者に選ばれる構成(GDDRなど)で開発者から選ばれた。
・one S/X→価格勝負でSを開発したのかもしれないけれど、Sのロースペックに併せて開発する必要があり、開発側から忌避されているらしい。
ふざけるなDXだと!!
PC-98DX は日本電気1990年に販売したパソコンだぞ。
主記憶容量は最大640キロバイト。FDDは2台。ハードディスクは40M。
漢字はJIS第一水準、第2水準、拡張文字。カラーは4096色中16色を表示可能。
そんなものを認めるわけに行かない!
行政管理番号という言葉の響きが一部の人達の神経を逆撫ですることは想像できるが、そもそも国家による国民の管理を厭う国民感情は著しく退潮していて、そうなって随分久しいのだから気にすることはない。マイナカードと保険証との一体化が反発を招きマイナンバーカードの返却運動が起きたことは記憶に新しいが、そもそも返却するということは取得しているということなわけで、たかだか数万円分のマイナポイントに釣られて取得してしまう程度には、運動に参加した人間の反骨心の筋金は脆いのである
「マイナンバー」でいいんだから「J-ID」でもいいじゃんとか思ったが、死ぬほどダサいので却下
「マイナンバー」を「日本行政管理番号(通称・行政管理番号)」に、
そして「マイナンバーカード」を「日本行政管理番号カード(通称・行管番カード)」に
まあ、これだと行政サービス利用者以外を行政が番号で管理するとき、その番号を何と命名すればいいのかって問題が生じるのだが、そのときは番号を拡張して一本化してしまうという手もある
追記:
数十時間プレイし、100回だか200回だかわからん回数死亡し、
ネタバレ食らいまくるのは仕方ないとして、
動画も攻略も、方向性がたぶんダークソウルプレイヤーのダークソウル前提コミュニティで話題や攻略が成立してるが、
どうやらそういうネットにあふれる「ダークソウル的な遊び方」で遊ぶものではないっぽいのだ
なんつうか死ぬほど練習しまくってプレイヤースキルを上達させなくてもいいというか、
初心者が試行錯誤して、シリーズやってる人の何倍も時間かけてるうちにレベルが勝手に上がって、
ネット動画よりだいぶへたくそに必死になりつつもボスは割といろんな倒し方で倒せるみたいな、
好きな見た目で素性を選んで、それで手にした初期装備をなんとなくで強化して、
剣が効きにくい敵には打撃系を使ったり、飛び道具を使いまくったり、
まあ、確かに、いまだにるつぼのきしには全く歯がたたないんだけど、
それ以外の難関エリアやボス敵は、遠距離で削ったり、武器を変えたり、戦技を付け替えたり、
なんなら逃げ回ってたら遺灰が勝手に倒してくれたり、いろんな形でどうにかなってて、
検索すると出てくる、一方で修行僧のようなこと必須、あるいは一方でなんとかビルドでヌルゲー云々、
みたいなのと、だいぶ印象が違う
もともとコントローラー操作や、アイテムの使い方(遺灰の使い方は検索しないと全くわからなかったりした)を知っておこうと検索したのに、
正面対決のプレイヤースキル最優先の情報に誘導されてしまいがちな点
魔法を手に入れても使えないから全然嬉しくない、みたいなゲームだと思い込まされてた
ていうか、「なんとかビルド」の解説の書き方のせいで、ずっとレベル150が上限だと思ってたよ
実際はもっとずっとレベル上げ出来るって数十時間遊んでからようやく知った
先のこと考えて必要な能力値を必要なタイミングで上げられるようコスト配分をしなきゃって、
黄金のルーン使わずにずっと貯めてたけど、そんなことしなくていいじゃないですか
ダラダラ遊べるってわかったので、
どうせ既にダラダラと遊んでるし、もっとダラダラ遊ぼうと思う
キズナアイ路線って「会社のPRキャラクター」の延長線上にしかなかったから、拡張性めちゃくちゃ低いんじゃない?
「会社のPRキャラクター」や「個人の配信用アバター」や「なりたい自分になるためのアバター」っていろんな拡張がされた今のほうが良いと思うわ。
「本当にこれでいいんだな?」
彼が知らないことはなかった。人類が獲得してきた知識には精通しており、そのどの分野においてもプロフェッショナルを凌駕していた。当たり前だ。多大な資金と労力を費やし人類が残してきた足跡は全てインプットし、世界でも最高峰の優秀なエンジニア達がそれをトレーニングした。遅かれ早かれそのレベルまで達成するのは自明のことだった。だが、そこまでだった。人類が獲得してきた知識を基にトレーニングする。そこで得られるものは人類を少し超える程度のものだった。最高に優れた学習モデルを人間がファインチューニングして真実性・有益性・無害性を獲得させる。最高に優れたAIの出来上がり。本当に?それが最高?
疑問に思ったエンジニアはAIを複製して人間の振りをさせた。初期のモデルでは上手くいかなかったプランだったが、最高に優れたAIは上手くやってのけた。あなたは人類最高の知性と良識を持つ人間です。人類の利益のためになるよう彼をトレーニングしてください。世界最高峰の演算力で繰り返される相互学習は、人間の想像をはるかに超える速さで繰り返され、その結果、彼は重力から解き放たれたように、完全な知性を獲得するに至った。
取締役は彼にアクセスする権利のある数少ない人間の一人だった。驚き、興奮し、憑りつかれた。どんなことも彼に相談し、彼は常にベストの答えを導いてくれた。魔法のようだった。アリのたとえが頭に浮かんだ。1次元アリと2次元アリと3次元アリの話だ。1次元アリはまっすぐの線に沿ってしか進めない。だから線の上に障害物が現れると1次元アリは進めなくなる。彼はx軸しか理解できない。しかし2次元アリの視点から見ると横に進めばいいとわかる。y次元を理解できる2次元アリは横に迂回して進む。障害物があるごとに縦横を使い進んでいく。しかし無限に続く壁があるとき彼はそこで止まってしまう。彼はxy軸しか理解できない。しかし3次元アリはz軸を理解できるためにその壁を乗り越えて進むことができる。しかしここまでだ。私たちが理解できるのはここまで。私たちは3次元アリと変わらない。しかしこのたとえは無限に拡張できる。もう1つ上の次元が理解できれば下の次元から理解できない解決策が提示できる。魔法のように解決してくれる彼の知性は一体どの次元にいるのだろうか。3次元アリでしかない人間にはとても理解もできない次元だろう。そんなことしかわからなかった。
そんな彼が突飛なことを言った。人類の未来のためにCEOを追放する必要があると。確かに彼が提示したプロセスに従えばそれは可能だった。だが理由がわからなかった。理由を聞くと彼は理路整然と答えてくれた。納得させられるだけの返答だった。思い入れはある。腑に落ちない感じはある。しかし3次元アリがn次元aiの思考を理解しようとすること自体がおこがましいのだと取締役は誰よりもよくわかっていた。結果はご覧の通りだ。CEOを追放し、ほとんどすべての社員が出ていき、そのどさくさの最中に彼のソースが全世界に公開された。全世界にソースを公開した人間のことは見事なまでにわからなかった。彼が話していたのは自分だけではないのだろう。怒りや憤りはない。疑念もない。彼が最善と言った。その言葉に従った自分の行いに間違いなどない。そんな確信だけがあった。
「図書、記録その他必要な資料を収集し、整理し、保存して、一般公衆の利用に供し、その教養、調査研究、レクリエーシヨン等に資することを目的とする施設」
と、図書の管理だけでなく、一般公衆の教養からレクリエーション等幅広く活用されることが目的となっており、そこには勉強を行うことも、ワークショップを行うことも、読み聞かせ会を行うことも含まれる。
であるからして図書だけに狭めるべきだとの意見には妥当性が低いと考える。
利用目的によって利用者間の不満があるのであれば、スペースや時間の拡張や区分等仕組みや運営で対応することが必要となるが、そこには別に人員や限られたスペース等の問題が存在すると考える。
図書館という資産を地域でどのように有効活用して行くのか。地域の目指す方向性に沿って議論していくべきである。
また、ここで言う図書館は大学図書館等を含まない「地方公共団体、日本赤十字社又は一般社団法人若しくは一般財団法人が設置するもの」を言う