はてなキーワード: ネストとは
コンピュータのソフトウェアを開発、運用するエンジニアが持つべき知識やスキルの基本セットとは何か?
例えばインテル系CPUのアセンブラが書けます!と言った場合に就活で有利になる場面がどれだけ想像できるか。
UMLのクラス図書けます!とか、暗号化の理論はバッチリだぜ!とか、相対性理論なら任せとけ!とかの場合に
おうおうおう、だったら弊社のホームページをカッコよくしてくれよみたいな案件を無難にこなせるのかというと
甚だ疑問では無いだろうか。
一昔前はソフトウェアはハードウェアのおまけだったわけで、ハードウェアこそがエンジニアが抑えるべき基礎だった。
時代は変わり、ソフトウェアでできることはものすごく多くなった。スマホアプリを作るのに組み込みの知識がなくても困らない。
だからこそ、現代のソフトウェアのみのエンジニアは旧来のコンピュータ関連エンジニアと道を分かたれている事を自覚しなければならない。
今の時代の最適解を見つけるのは困難かもしれない。
だけど組み込み系やマイコン制御をしないのであればアセンブラやC言語よりも優先して学習することはいくらでもある。
html,css,javascript をある程度自在に扱えるようになるのも長期間の訓練による積み重ねが必要になる。
コンピュータサイエンスネタが無いな……これはプログラミングに役立つネタももちろんあって、構造化プログラミングやオブジェクト指向プログラミングなんかもそうだけど、表層的に関数分けました、クラス分けましたとかしてもうまくいかない。ネストが浅けりゃいいってわけじゃない。プログラミング以外のネタもある。サラリーマン巡回問題とか。
if文のネストは3段まで!
いろんな話を読んだうえでの私の理解をまとめました。私は
を書いた者で、それへの反応(消えていました…)と
あたり、それからその周辺の話題とwikipediaを読んだくらいなので、おかしい点は指摘してください。
この二つの柱の間を言ったり来たりすることで、すべての批判をかわしているような錯覚を得ることができる。ということなのだと思います。
→期待値は常にマイナス。+∞はないけど-∞はあるし。プラスになる可能性があるよりもマイナスがないことのほうが重要。
→それは価値観しだいだよね。その価値観でいけば生きてる人もすぐ死んだほうがいいじゃん。今すぐ死ねよ。
→期待値とか言い出すバカ。そういうことを言ってるんじゃない。プラスマイナスに関わらず →柱2へ
→当人にとってブラスかは我々には判断できない。だがどう考えても →柱1
こんな感じ。一つ一つに反論できることと、全体があっているかは別問題ではないでしょうか。
やはり人間は深いネストのコールバックを理解できるようにはなっていない!(関係ない感想)
ちなみにこの話は暗黙の前提として、生まれれば後に苦痛や幸福を受けることになり。生まれなければ何も起こらないが何らかの価値観を持つ存在があると仮定しています。
反出生主義の人は無意識のうちにそのようにしているのではないかと思います。
そうでなければ、無は無ですよ。というだけで話が終わってしまうので…
転職かぁ
プログラマなんだけど、なんでも揃えようとしてる人がうざい
よくあるのが、JSON とかオブジェクト系の記述するところで、 「:」とか「=>」みたいなのの位置
揃えられると一見すると見やすいが、金額みたいに揃ったみやすさが必要ないところでされると面倒
10行並んでたら1つ変えたのが原因で10行とも変えないといけなかったりする
面倒だけどツール使えば揃えること自体は楽にできるからこれはまぁいい
だが、バージョン管理ソフトでの変更行数が無駄に増えるのでパット見たときに結構大きな変更してるように見えたりするからちょっとイヤ
さらに grep かけようにも空白数が不定だから正規表現にしないといけない
んだけど、まあここまでは別にいい
この揃えるときに
aaa : { bbbb : 100 ccccc: 200 }, dddd : { e: : 300 }
みたいに(フォントによっては揃ってなく見えるかも)、ネストが違うのに全部を揃えようとするの、ホントやめろ
わかりづらい
上の例みたいなシンプルだと困らないが複雑な構造になってるとかなり見づらい
上でいう aaa と dddd の行が10行程度離れていたら、ここを揃えても全くきれいに見えないし無駄
bbbb と ccccc みたいなときだけならまあ許せる
仏の顔も三度まで、
(1) 文字数を合わせようとする
上で書いたみたいなのは文字数が違うから合わせるためにスペースを入れる必要がでる
きれいなのはわかる、だが無理やり合わせようと単語を探し始めるとかありえない
5つ項目があって、4つが6文字の単語で残りの1つが4文字だったとする
無駄な上に、本来のそれに適した単語じゃないのを無理やり使うのでわかりづらい
揃ってることはパット見綺麗でもプログラムみたいのだと、単語まで似てると気づかないミスが出て来る
beer と bear、 form と from、 fall と fail みたいな見た目が似てる単語と、見た目が全く違う単語の比較ではミスの数が明らかに変わると思う
なのに、 enum みたいな選ぶタイプのもので、数文字違うだけの似た見た目の単語を探してきて選ぶとか、ミスを誘発しようとしてるのかと言いたい
(2) 単語の語尾とか
(1)のように大半が揃ってると残りも無理やりそうしたいということで、単語を勝手に変化させたものがある
例えばだが、語尾が1つを除き全部 -ly になってたとする
そうすると残り一つに無理やり ly をつける
なんなの?イン踏みたいの?ラッパーなの??
そもそも名前みたいな固有名詞にすらそんなことしてるから意味不明にもほどがある
上の時点で英語を完全無視で英語力のなさはわかっただろうが、さらにこういうのもある
過去形には ed 、複数形には s のようなルールには単語によっては特殊な形をするものがあるのはもちろん知ってると思う
プレフィックスに is つけるみたいな単語の組み合わせ部分なら気にしないけど単語としておかしいから、自分で書くときに本来の形で書くとエラーでるからさらにイライラする
例えばこういうこと
readed, catched, taked, companys, boxs, mans, childs, fishs, classs
見てるとムズムズする
英語得意でない自分ですら違和感を感じるのに、これに何も感じないとか英語力ひどすぎると思う
まあエラーメッセージで don't have ~ とすべきところを has not ~ とか書いてたくらいだからなぁ
これが部下とか下の立場の人なら 「使う前にググってみて。おかしかったら『もしかして、~~』みたいの出るから」と言って直させるけど、上だからどうしようもない
間違ってますよー、と遠回しに言ってみたことはあるものの、直す気は全くないようだし、それどころか無邪気に揃えてやったぜみたいなこと言ってドヤ顔してるからホントどうしようもない
自分は、客単¥5,000~¥10,000程度の中級店にて10年ほどフレンチ中心にイタリアンもちょっと経験した(元)料理人。
サイゼのメニューについて「雑に」「適当に」感想を述べてみる。
(元)「料理人」であるからして基本的には自分の好みではなく、料理としてどうなのかという点から感想を述べてみたい。
(自分の好みによるコメントも含まれるがあくまでも「基本的に自分の好みではなく」な。)
もちろん、あの値段・業態なのだからそれらを無視して評価することはナンセンスと思っている。
(パスタはアルデンテであるべき!とかステーキの焼き方を聞くべき!とか、そういうのおかしいでしょ。)
■サラダ
サラダは総じて悪くない。お好みで(自由に使える)粉チーズや黒胡椒をかけても楽しめる。ドレッシングもよい。
やわらかチキンは本当にやわらかく臭みもなくうま味も残っている。個人的なおすすめはシェフサラダ。クルミを使う等がワンランク上っぽいね。
■スープ
コーンクリーム、パンプキン共に悪くない。いずれも滑らかで素材の味を十分に表現できている。
食べたことないんで評価できないが、ミネストローネは期待できない気がしてしまう。
後述もされるが、サイゼ含め廉価店ではトマト系は総じて火の入れ加減が甘く、トマト嫌いが嫌がる香り・味を残した状態のまま提供されることが多いので。
(トマトはクーリのようにフレッシュな状態を残すか、しっかり煮込んだソースのどちらかがよいと思っている。
中途半端な火の入れ方のソース(料理)を食べた結果トマト嫌いが増えると経験上思っている。)
■パン
パン類は総じて悪くない。
ちゃんとオーブン(パントリーにトースターがあるのかな?)で焼いてくるところは評価できる。
■おつまみ
野菜ソースは玉ねぎの硫黄化合物系の臭いが残り、残念ながらサイゼでは最も評価できないものと思っているが、
グリルソーセージは秀逸。古典的なソーセージの味に近い。このソーセージが好きな人はシャルキュトリを楽しめる人だ。
野菜ソースやめて更には芋もいらないから、ディジョンマスタードを添えてくれないだろうか。
エスカルゴもよい。フォカッチャよりむしろミニフィセルを合わせることをお勧めする。
以前の自分のスペシャリテでもエスカルゴはバジリックのソースを合わせた。
ペルノでフランベして生クリームも使ってくれればそれに近づくが、サイゼではまぁ無理だな。
ほうれん草のソテーは、れん草が西洋種(苦みがある)と思われるので、若干ポーションを減らしてでも
東洋種(甘味が強い)を使ってもらえたらもっとよくなると思う。
残念だが評価できない筆頭はムール貝。そもそもムール貝ではなくパーナ貝だし。
パーナ貝は食感が固くうまみ自体も乏しいので(しかも野菜ソース使用)、メニューから外してしまってもよいくらいだと思ってしまう。
■イタリアの味
■パスタ
残念だが、これは全体的にいただけない。
食感は業態を考えれば致し方がないことなので評価対象としていないが、ソースがどれもだめ。
トマトの扱いについて前述しているが、どのソースも煮詰めが甘い。高級な素材を使用するのではなく、単にもっと煮詰めるだけでおいしくなる。
ただ煮詰めた分歩留まりが悪化するので、ギリギリのバランスで提供していることは分かるが。
火を通したニンニクの良い香りはせず、人工香料に見られるような悪しき臭いのみが鼻につく。
ドリア・グラタン系は総じて悪くない。この値段にしてベシャメルはかなり頑張っていると思う。
低価格なベシャメルだと香料の粗悪な臭い(粉乳系のあれな)が鼻につくことが多いがサイゼではそのようなことがない。
このベシャメルが実現できるのにパスタ系ソースの出来が悪いので残念に思う。
■ピザ
ピザ系は総じて良い。生地についてはなんとも言えんが、業態を考えれば大変よくできている。
個人的感想で申し訳ないが、コロコロ(ルーレット)いらない。ナイフとフォークの方が食べやすい。(大人数で食べるならしかたないが。)
でもああいうところでコストダウンしてるから、あの値段で提供できるんだよね。
■米料理
ごめん。食べことないので評価できない。どうなんですかね?増田諸君。
■肉料理
これらは妥当というしかないね。値段を(考えてはいけないんだけど)考えれば非常によく出ている。
前述しているが、野菜ソースはサイゼで最も残念なものなので(素材の悪いところしか出ていない)
それを使ったメニューについてはお好みならどうぞという他ない。
どうでもいい話だが醤油ベースのソースをガルムソースと名付けた意図はなんなのか。
ガルムとは古代ローマの時代から使われた魚醤(ナンプラーとかしょっつるとか)のことだが(ブオナッシージによる)、
こんなマニアックな名称を使うのなら、サラダはインサラータと言ってほしかったし、ミネストローネもミネストラと言ってほしかったし(ry
■デザート
ごめん。ほとんど食べことないので評価できない。おそらくいずれも妥当と思われる。
■(おまけ)酒類
サイゼのワインについては言わずもがなだが、グラッパ(少々癖がある)も悪くない。
興味がある人は一度食事(飲み)の最後に飲んでみることをお勧めする。
メニューには「ぶどうの焼酎」などと書いてあるが、普段日本の焼酎を好む人が好むものではなく、
ワイン、ブランデー等ブドウ由来の酒をたしなむ人は気に入る可能性があると思う。
■(おまけ)その他
オーリオピカンテではテーブルをベトベトにされてしまうだろうし、タバスコでは酢が立ってしまい辛味のみの提供とならない。
タバスコをテーブルに置かなかった、しかし用意はされているのは大変に賢明であったと思う。
自分の好みだがベシャメル系の料理に卓上でタバスコをかけて食べるのが好きなので。
ちなみに、ベシャメルは古典的には塩とカイエンペッパーで調味するものであり白胡椒は使われなかった。(ベシャメルに限らず白いソースはほぼそうであった)
タバスコをかけることとは全く違うけどね。
以上
システム開発は色々面倒な作業がつきまとうが、特にテストがしんどい。
設計のフロー1個1個にテストケースを作ると、それだけで1メソッドあたりのケース数が30くらいになってしまう。
何よりケースを抽出し、文章にするのはどうやっても効率化できない。
それだけならまだいい。
基本コピペであっても記述量が膨大で、書いても書いても終わらない。
そんなことを要求してくるJUnitは最低最悪のツールだと思う。
大体、テストコードで開発が効率化されるとか、寝言抜かすなと思う。
そして以上の作業を1メソッドにつき1週間でやるとか、遅筆の自分には無理。
そもそもフローで書かれた手続きをJavaで実装しようとすると、処理のネストは深く、かつ記述量も長くなってしまって非効率この上ない。
大きな開発でJava使う意味なんて、というかオブジェクト指向を持ち出す意味なんて殆ど無いどころか、書きにくくなるばかりで、これまた開発の効率化なんて嘘だと思う。
社内SEになった。
仕事を辞めて主夫業に勤しんでいたら、知り合いから声がかかった。
1人で社内システムを作ってきたおじいさんがあと数年で定年になるから、
引き継げないかとのこと。
メインのシステムはベンダーに委託してて、そのおじいさんが作っているのは、
メインシステムのデータを加工して2次利用しているものがほとんどとのことだった。
社内SEはなんとなく楽そうなイメージがあったので、就職した。
中身を見るとどちらもかなりやばい。
VBA編
・ウォッチウインドウを知らないのか、変数はすべてセルに入れてる。
変数名はすべてRANGE("A1").valueみたいな感じで全く意味が分からない。
・処理遷移がおかしい。
セルに1を入れる。そのセルのchangeイベントで処理が動くとか。
・なるべくワークシート関数で処理してる
データベースからとってきたデータを丸ごとワークシートにコピーして
if,vlookup,match関数を駆使して帳票にしたり、CSVにしてる。
データ100件制限があったり、1関数を直すときは100行コピーしないといけない。
画面中に埋め尽くされたワークシート関数をみて途方に暮れる。
・format関数を知らない。
8桁の日付をとりたいときyear、month、day関数がワークシートにあり、
その下の行で月の二けた判定、日の二けた判定のif関数で頭の0をつけ
3行目でconcatenateしている
・タイマー起動
毎朝100本ぐらいのマクロが動いてる。
タイマー起動なので、毎日セットしないといけない。(タスクスケジューラーを知らない)
がんがんエラーが発生するので、マクロ設定をエラー処理対象外のエラーで中断にしないと動かない。
・遅い
textboxのchangeイベントでDBからのデータ取得処理を入れているので、データが多くなると1文字打つごとに数分待つ状態。
DBの更新処理でもテーブル全件とってきて、ループしながらキーが一致するのを探して更新。
そんなつっこみどころしかないEXCELマクロが200本以上ある。
VB編
・.NET1.0
windows7や8に無理やり.netframework1.0を入れて動かしてる。
・オブジェクト名は代えない
変えられることを知らないのかもしれない
textbox100とか存在してる。
EXCEL同様変数は隠しtextboxに入れてる。
1.0なのでconfigがないのはしょうがないが、設定ファイルは固定パスのテキスト
行数で管理
・WAITがいっぱいある
試しに取ったら動かない
例外が発生するまでまわす。
ない。基本グローバル。
・クラス
ない。
・ネスト
ない。
エクセルで関数使って色々な事出来るようになるみたいな感じなのかな?sum関数覚えて、count覚えて、ifをネストできるようになってちょっとテンション上がって。vlookupで一気に世界が開けて、sumproduct使って複数条件検索もクリアして。一旦関数離れてピボットテーブル使えるようになってまた世界広がった気分に浸って。。そのうちそろそろ出来る事の限界が見え始めてきて、マクロに手を出して。最初は操作を記録させて意味不明なコードの意味をひとつひとつ理解していって。そのうち記録で吐き出されるコードがクソ汚ねぇって気付いて。。。
で一つ疑問なんだけどさ、会社で事務方やっててどんどん知識と経験が付いて行くのは理解できるんだけど、「プログラマー」って、その職業につく前からプログラム書いてて、そういう仕事したいって思って就職したんだよね?いったいどういう必要に迫られてプログラムに手を出したの?
VBAわかりますけど(キリッ)みたいな人が作ったマクロを直すのが苦痛すぎる。
なんでもエクセルでやろうとすんな。
マスタのデータをエクセルに貼り付けたものをつかってVBA組むな。
変数はご丁寧に一番先頭で宣言祭り、コントロールの名前が連番、無意味な処理、データの件数を取得するためだけに同じSQLをCOUNTにして実行、無意味なループに、ifの4段ネスト、メソッド名が不適切(checkXXX)、スコープは全部Public、定数の概念無し(マジックナンバー多すぎ問題)、型変換の概念無し(文字列を数字にぶっこむ)、例外処理なし、その他突っ込みどころ多数
定量的に糞コードを測定するってスライドがブクマされていて、見てみたらやっぱり循環的複雑度がでてたわ。
あれ、こういう話題でよく見るけど科学的根拠はないんだってな。
考案者のマッケーブに、科学的根拠は?って質問したら「役にたってるんだからいいじゃないか」みたいな答えしか帰ってこなかったって話を見たことある。
まあ、たしかに分岐やループが多くて複雑なコードはバグが多くなるだろうけど、オレが「分岐は1点。ループは1.2点。ネストが一段で係数1.5を掛ける」みたいな増田係数みたいのを適当にでっち上げても、バグの数と相関関係が出てくると思うんだよ。
あんなツールを使わないと測定出来ない複雑なメトリクスでなくて「ネストはn段まで」とか「ifはn個まで」とか超簡単なルールでも対応できる程度のもんだと思ってる。
それなのに、Googleの超頭いい人達まであんなオカルトを信じて「クソコードの測り方」みたいな数式を考えだしちゃってるわけでしょ。
なんかすごいよね。