はてなキーワード: カラム名とは
プロダクト開発するときの一番最初のラフな設計を共有したときに
みたいに言ってきて、かなり反対したんだけど
そのせいでDBのテーブル名からカラム名まで全部日本語の名前が付いてるし
それに合わせてオブジェクトやAPIの機能名まで全部日本語で設計
実装するときに全て英語にする必要があって英語名の付け方で揉めるし
そもそも日本語的には良くても英語にするのが難しい(もしくは凄い長くなる)みたいなのもあってスケジュールは大幅に遅延
課題が出てきたときもシーケンス図とかE-R図とか全部日本語で作られてるのでソースを見てから図を見ても理解に時間がかかる
バグ修正でカラム追加やAPI追加するときにもいちいち日本語名と英語名を付けないといけなくて滅茶苦茶めんどくさい
似たような名前の取り違えとかも起きてバグが増えてプチ炎上してやってられん
マジで日本のITが遅れてる原因は日本語問題なんじゃないのかな
hotentryを閲覧していたところ、過去に山本一郎が書いたゲーム関連の記事を見て、私が経験した不快な出来事を思い出した。
その記事は https://web.archive.org/web/20121118031411/http://kirik.tea-nifty.com/diary/2012/11/post-722c.html
私は当時、記事に言及されているゲームを開発した会社に勤めていた。
ゲーム自体はいわゆるガワ変えであり、元のゲームのソースコードにアクセスすることができた。
記事には以下のように書かれているが
一番の問題は、ガチャで「有料ガチャを回しても出ない時間帯が設定することができ、実際にそのように設定されている」ことが明らかになってしまったことです。
これは大きな間違いであり、実際そのように見えたのはバナーの表示制御用カラムであってガチャ出現の制御フラグではない。(カラム名にgachaが含まれるなど邪推される内容ではあった)
このことは2chなどで話題になったものであるが、私はソースコードを確認し、そういった不正な設定はないことを当時確認した。
仕様書を作ってないシステムの概要を資料にまとめて欲しいと言う依頼
その程度であればと思い受けて、数時間でできる程度の資料を作って送る
結局、
あれも教えて欲しい、これも追記して欲しいと工数以上の事を要求される
「何でこんなお粗末な資料を寄越すの?」って言われても、DB設計書も指示書もまとまってないんだから多めに見てくれよ、この程度の工数でやる気なんて出ねえよ
「何でそのままDBのカラム名をプログラムで使わないの?」って言われても、パスカルケースとキャメルケースとスネークケースが混ざっているし、日本語ローマ字だらけのカラム名をそのまま使えるわけねえだろ
と部屋で一人愚痴りながら書き上げて送る
叩き台作らされた上に、修正で手を動かす側にさせられるのは損だなと思いつつ
以前にもこの機能のヤバい遅さは言及されていたのだが、時系列検索をしたくなったときに改めて気になった。
そもそも、全文検索ではないのだ。全文検索は難しい。探索木が素人には無限に見える程に広がる。試験的なサービスで RDBMS に LIKE 検索をさせているサービスもあった。だから、てっきりそういうインデックスが効かず(前方一致なら効く)メモリを大量に消費する処理だから遅いんだと思っていた。
でも、増田の検索ってキーワード検索なんですよね…。はてなキーワードは三十数万件らしいので、 LIKE でも全然即答できる。
これもしかして、 {マッチしたはてなキーワード} (120) とかの (120) 部分、つまり該当キーワードに言及する日記から count するために遅いのでは。いやあったら良いこともあるけれど、検索が機能することよりも大事ではないよね。ついでにいうと count としても遅いので、 NULL 値を考慮しないならカラム名を指定せず選択された行の数を返す count(*) が早いよ。
あー、チューニングさせてくれ…。無理だとしても、増田の検索は負荷で遅くなっているのではないと表明してくれ。検索するたびに寿命が縮む。いや、 AnonymousDiary の寿命が縮む思いだ。
ここもちろぐ
生産性志向のSEが、IT業界での奮闘記や仕事や生活で学んだことをはきだします。
2018-05-15
gizeh-2272008_640
こんにちは。もちです。本日は、みずほ銀行のプロジェクトで2か月限定支援に行った時のことを話したいと思います。
あの頃は、ちょうどポケモンGOがリリースされた時期でした。 プロジェクトのお昼休みに、わくわくしながらアプリを立ち上げて、メンバーの方と遊んだものです。
そんな次期システムが、いよいよ、2018年6月9日から徐々に移行開始されるそうです。
みずほ銀、9日からシステム移行 「世界最大級のプロジェクト」 ATMやネットバンクに臨時休止日 (1/2)
みずほ銀行とみずほ信託銀行は、入出金や口座管理などを担う勘定系システムを統合した次期システムへの移行作業を9日から始める。4000億円超の資金を投じて進めてきた世界最大級のプロジェクトが、最後のヤマ場を迎える。
www.itmedia.co.jp www.itmedia.co.jp
移行が発表されてから、「あの頃が懐かしい」と感じたため、せっかく浮かんだいろいろな想いを残そうと思って記事にしました。
ここもちろぐ
ここもちろぐ
みずほ銀行のプロジェクトで2か月限定支援に行った時の話、まなび編です。 ▼前記事の問題編はコチラ www.cocoamocchi.com 古参メンバーの仕事を奪う デキる古参メンバーはとにかく忙しいです!! 新規参入者でもやり方さえ一度知れば、できそうな仕事もありそうだということで、積極的に仕事を奪いにいきました。 たとえば…
2018-05-17 22:53
www.cocoamocchi.com
毎朝エレベータに長蛇の列
人気アトラクションかな?と思わせるほどの大行列でタイミングが悪いと10分以上待たされました。
テストフェーズがちょうど一個上の段階に進んだためか、チーム内のスマホは鍵付きロッカーでしっかりと管理されるようになりました。
インターネットが使えない
security-265130_640 これが一番厄介でした!!!
新入社員であれば、まずはググり力を鍛えろ!と先輩に教わるも方もいるのではないでしょうか。
わたしみたいなIT業界で働く方々は特にインターネットで調べまくる生き物です!
なのに使えないので厄介でした。
・・・とはいっても、わたしの場合は、こっそり休憩スペースにスマホを持ち出して調べてました。
他には、書籍にもお世話になりました。
ここで 「ネットが当たり前だと思うな、腕を磨こう」という教訓を得ました。
印刷用紙が真っ赤で読みづらすぎ
持ち出し抑止のために、プリンタ用紙が赤くなっておりました。
(特に持ち物チェックがあるわけではないので、悪意のある人なら持ち出せたかと思います。)
印刷してみるとまあ~わかりづらい。 気持ち的にもなんか落ち着かない。
でも一定の効果はきっとあったのだろう。。
ただでさえ生産性の低い環境なのに、働き方もやっぱり残業ばかりされている方だらけでした。
特に既存メンバーの古参者は大量に仕事を抱えているので、いつもヘトヘトです。
他の人へのレビューも、当然荒い。
また最終退館者名簿を見ると、お客さまサイドも負けずと毎日23時台まで残っているようでした。
※ちなみに
ごめんなさい、わたしは最長でも21時には帰りました!寝不足すぎると生産性がダダ下がり逆効果なので苦笑。
単体開発 バグ改修
私の場合、残念ながら新規開発部分は残ってなく、仕様取り込みやバグ改修をちょこっとやったくらいです。
開発ではなく、ほとんど仕様整理やJP1いじっている時間が多かったです。
命名規則がつらい
短い単語をアルファベット1文字で表現する文化があったため、それらをつなげて作成されるDBのテーブル名やカラム名が新規参入者にとってはしぬほど分かり辛かったです。
1箇所の修正で5個もケースはないし、誰も見ないのではないかなというくらい、ゆるふわなテスト結果が置いてあったりと、とてもじゃないけどもお金を扱うシステムだとは思いませんでした。
これ、結合テスト以降、バグ爆発するのでは?という印象だった。
the-1865639_640
階層がとにかく深く、無秩序に置かれた何千のフォルダ群はまさにジャングル。
既存の古参メンバーであったとしても、過去の単体テスト仕様書の在り処を探すだけで10分以上かかっていました。
IDEなど開発に使用するツールも、各チーム持っている情報が異なっていて、結局、既存メンバーの持っているものを丸ごとコピーして使ってました。
個々の期限がタイトにも関わらず、申請日時を厳守しなければならないのはつらかったです。
この申請は、数チームで1つのエクセルファイルにまとめて申請します。
プログラムファイル1つ1つのパスを記載していくのですが、 誰かが1ファイル既述を誤るだけで、
どこぞやのチームのせいで2連続申請ミスされたこともあり、こちらとしてはたまったものではありませんでした。
もしかしたら、誰かが休みたいがために、わざとミスしてるのではと疑いたくなるくらい大変でした。
まあ、とはいっても緊急リリースみたいな1~2日でできる裏技も時に使うことができたため、そこまでではなかったのかもしれません。
プロジェクトマネジメント
child-waving-goodbye-595429_640
うちの会社だけかもしれないけど、メンバーの離脱が、作業指示を出しているチームリーダーまでなかなか届かない印象でした。
「来週からこの作業お願いするね」と言っていた矢先に、彼らがいなくなることを知らされる。
これは、どこの炎上プロジェクトもですが、各タスクの期限だけ決まっていて、工数は考慮されていない事案です。
この事案は仕方ない場面もありますので、メンバー側がリーダーやプロマネに少々寄り添って、自分で仕事を考えていればOKです。
親切なプロジェクトじゃないのは分かっていることなので、他責にせず、ざっくりと工数を伝え、助けていきましょう。
新規参入者の実力が怪しい
少し言語知っている程度(for、if文はできるけど・・)で意思疎通の難しいプログラマーが国籍問わず、たくさんおりました。
猫の手も借りたいくらい忙しいプロジェクトだったので、自分で主体的に仕事を考え、動き、古参メンバーを助ける必要があります。
しかし、
進捗が良くないことをごまかす
など、この中のどれか1つ該当ではなく、複数持ちのプロジェクトキラーが何人かいました。
他の人も急に想定外の残業フォローをしなければならなくなるし、本人は無駄に悩み続ける時間増えるし、誰も幸せにならない感じでした。
まとめ
特に銀行のプロジェクトは、生産性の低い現場やずたぼろな構成管理など、環境的問題も多いことがわかりました。
同時に他責にせず、主体的に行動すれば、新規参入者でもそれなりに活躍できることもわかりました。
しかし、わたしの場合、2か月限定が配属前から決まっていたこともあり、
心までしんどくならずになんとか戦えたことが大きいかもしれません。
もし炎上案件に出会っても、 心や身体をやられるようなことがあれば即刻辞退をおすすめします。
残業による残業という負のスパイラルが、もし嫌なら、早く抜け出すほうがこれからの人生豊かです!
断言できます!!
それを何と発音するか、というのに若干ためらう
もちろんその単語を読むことはできるし、
ただ、それを顧客や同僚と共有する時に、日本語の昔ながらのカタカナ表記で読むべきか、多少英語に近い発音にすべきなのか、というのが分からないのだ
ガッツリ英語発音をする必要はないし、そんなことすれば浮いてしまうだけだ 日本の会社で日本人が作っているのだから
しかしながら英語は身近なものとなり、日本語としてのカタカナ表記が本来の発音から離れてる、と分かっている単語も多い
この現場では大多数がどう発音しているか、どう発音するのがこの場所で一般的であり意思疎通に適切なのか
そう思いながら同僚の発音を注意深く聞き取ろうとする
謎は深まるばかりだ
SQLは意識して書かないと死ぬほど読みにくくなるのが気に入らない。
前の職場には何もかも全部大文字で表記し、ろくに改行も入れないバカが居て死ぬほどつらかった。あろうことか、読みづらいクエリを書ける自分にプライドを持ってるっぽかった。ああいう奴とは二度と仕事をしたくないよ。
SELECT COL0,COL1,COL2 FROM TABLE0 WHERE COL0=1000 AND COL2 IN (100,102)
これを少しでも読みやすくするために予約語を大文字、カラム名やテーブル名を小文字で表記している (カラム名・テーブル名が大文字で決め打ちされているなら、予約語を小文字で統一している)。
SELECT col0,col1,col2 FROM table0 WHERE col0=1000 AND col2 IN (100,102)
しかしこの方法も万全ではなくて、例えば複数のテーブルが関連するクエリが
SELECT t0.col0, t0.col1, t0.col2, t1.col0 FROM table0 t0 LEFT OUTER JOIN table1 t1 ON t0.col3=t1.col3 WHERE t0.col0=1000 AND t0.col2 IN (100,102)
みたくなってしまう (テーブル名のtable0、仮名t0、カラム名col0が全部小文字になっているため、なかなか読みづらい)。
皆さん、どうやって工夫されてますか?
まだまだ一部のエンジニアにとって、という話だよね。
少なくとも英語の読み書きができないと最新のテクノロジー情報をキャッチアップできないとか、stackoverflow読めなくて問題解決できないとか、オープンソースにコントリビュートできないとか、これはまさにその通りだよな。オレもオレなりに英語力の不足を痛感する機会は腐るほどある。
でも日本にいる80万人以上のITエンジニアのうち、そうした能力を必要とされないエンジニアがこの日本の大部分だ。
なぜならSIerみたいな受託開発・運営がソフトウェア業界の売上高6兆ぐらいのうち半分以上で、かつ彼らの大部分は日本語ドキュメントが充実してる枯れきった技術を使い続けるから。
枯れた技術で安定性を担保ってのはわかるが、公式のサポートが終わってるJava4~6,PHP5.0~5.3を使ってんだよ。保守じゃなくて新規案件だよ。COBOL,アセンブラみたいな化石言語を保守し続けるところもあるがあれはもっと別の世界から来たナニカって感じだな。そっちはよく知らん。
オレは新卒で入った受託ソフトハウスや大手SIerで計8年働いて、6年ぐらいはwebアプリのプログラマ・SEとして色んな現場みたが、オレも含め一緒に仕事する人は誰も英語なんて求められてなかった。英語読むより怪しいExcel仕様書なりソースコードのコメント読むなり顧客のメール読むなりして汲み取るのが大事だし、コーディングで困ったら日本語でググればまずヒットする問題ばかり。
コーディングで英語を使うと可読性が下がるから変数名・メソッド名・データベースのテーブルやカラム名もヘボン式ローマ字表記で書けってわけ。顧客マスタは「KOKYAKU_MASUTA」だし、担当者は「TANTOUSHA」と「TANTOSYA」で表記ゆれ、笑えるよな。
とにかく言いたかったのは、docker1.12だとかRails5だとか機械学習の新しいフレームワークだとかそういう話題でワイワイやってる層とはまったく別の層がいて、そいつらに英語は全く必要ないしこれから先の何年も求められずにやっていくだろうっていうこと。
悲しい愚痴、以上。
○朝食:なし
○昼食:おにぎり三個
○調子
むきゅー。
22時半ぐらいまで残業だったんだけど、最後の一時間はもうろうとして、
Select *
From hoge h
Where h.key Not Exist
(
Select *
From piyo p
)
こんな感じのSQLが動かないー動かないーって唸ってた。(今もふらふらで適当に書いたから、そもそも間違ってないとか、意味がわからないとかだったらごめん、existとinの書き方ががごちゃ混ぜになって、existなのに比較するカラム名を書いてたって間違いだってことが書きたかっただけです(のわりにこの例文だとexistのカッコの中のselect文がアスタだけなのが納得いかない感があるな、どうやってkeyと服問い合わせを比較するつもりだったんだよ))