「オブジェクト指向」を含む日記 RSS

はてなキーワード: オブジェクト指向とは

2018-02-07

コインチェック事件WebエンジニアSIerの融合の幕開けかもしれない

 Webサイト技術の高度化

Webでは単純にテキストサイトではない本当に色々なことができるようになってきた。

HTML5になって以降まさに飛ぶ鳥を落とす勢いだ。

ここ5年くらいでデスクトップアプリに負けないレベルSaasも出てきた。

SlackYoutube生放送GoogleドキュメントGoogle mapカーナビ代わりにしている人もいる。

Javascriptも相変わらず日進月歩TypescriptやらNodejsやらReactやらVue.js Three.jsなど、もうテキストサイト付属品ではないことは明らかだ。

個人的にはWebGLアプレットを使わず3Dの描画ができるようになったのは衝撃的だった。

 コインチェックで露呈したWebエンジニアの弱点

そんなわけで、Webはどんどん急激に高度化し大規模化してきている。

ここまで大規模化していったシステムセキュリティ的にもシステム的にもこれまでのような少数のチームがちまちま作るには手に負えない状況に来ているんじゃないかと思う。

それが表面化してしまった事件が今回のコインチェック事件ではないか

コインチェックはおそらくWeb系のエンジニア主体でイケイケで開発したんだと思われる。

デザインハイセンスUXも洗練されてる感じがする。

ただセキュリティが甘かった、つまりシステムとしてセキュリティ内面)に問題があった。

これはまさにWebエンジニアの弱いところを突かれたといっても過言ではない。

 WebエンジニアSIer

それに伴ってWeb企業SIer化していくんじゃないかというのが私の持論。

全てとは言わないが、これまでのWebエンジニアの開発スタイルはどちらかというとイケイドンドンでできたらいいや使えたらいいやの精神でやってきたんじゃないか

これでは大規模なシステムになるとセキュリティ保守も難しくなってくるだろう。

大規模なシステムはきちんとオブジェクト指向で作ってテスト駆動ウォーターフォール式で開発するのが筋ってものだ。長期的な目で見れば理にかなっている。

今後高度化していくWeb対応するためにはそうやって作っていくべきだろうし、自然にそうなっていくだろう。

大規模なサービスに関わるWebエンジニア自然SIer的になっていくんじゃないか

Googleスライドとかスプレッドシートヤバいくらい複雑なシステムだと思うしハイクオリティだとおもうんだけど、どんな開発体制で作られたんだろうか気になる。

2018-01-24

anond:20180124132341

しろオブジェクト指向からこそ普段元号なんて気にしていないわけで。

継ぎ足し継ぎ足し作っていった秘伝のソースから元号という具材だけ抜き出すのが簡単だと思うならやってみろ。

元号の変更ごときであたふたしてるエンジニアって・・・w

普段オブジェクト指向だのカプセル化だのご高説垂れてるくせに実務では全く活かせてないんだな。

お前らの大嫌いなエクセルですら、内部的な日付情報を表示の段階で西暦元号に変換している。

まり記録と表示を機能分離してあるため、表示機能(関数)を少し変更するだけで新元号にはあっさり対応できる。

おまえら普段どんな糞システム組んでんだよw

2018-01-19

anond:20170911110731

N予備校プログラミング入門Webアプリの有料コースまでやってみた

プログラミング経験がなくても大丈夫!みたいな体で書いてるが、絶対無理

初見メソッド解説無しで当たり前のように出て来るし、

オブジェクト指向説明もないまま、ガンガンオブジェクト指向プログラミングさせてたり、

環境構築でBIOS立ち上げる必要があったり、よっぽど主体的に取り組まないとまずついていけない。

動画はあまり見てないが、テキスト解説はお世辞にも丁寧とは言えない。

無料コースと有料コースはまず別物と考えたほうがいい。

ただ実践的な内容ではあるので、初級者が次のステップを目指すにはいい教材だと思う。

しろそういう教材は貴重だと思うので、

> N予備校で学びを始める際に、プログラミングの前提知識は一切不要です。

みたいな誇大宣伝さえなければ良かったと思う。

一発でモノ作るのって無理じゃね?

今、同じものを3回作り直しているんだけど、毎回完璧かなと思って作るんだけど、直したいところや、もっといいアイデアが思いつく。

間違いなく最初バージョンよりも今のバージョンの方が使いやすくて、メンテ保守性も高い。

これに関わってるのは自分だけなので、大きな作り直しとかできるんだけど、コレ、業務だったら絶対無理だよなぁと思う。

一行直すのにぼったくり価格出される件についてはてな村から分かってねーな素人はみたいなコメが多かったけど、結合度を下げたりして保守性の高い設計にしてたらもっとぼったくりほどじゃない価格で出せると思うんだよね(2000年代オブジェクト指向MVC論争、アジャイルはなんだったんだ?)

なんか脱線したけど、要求なんて素人が少し思考を整理しただけで完璧ものなんて絶対にできないんだから一発で十分なモノってできないんじゃないかなぁ

それをやってるMicrosoftはどうかしてると思うけど

2018-01-14

anond:20180114180633

classがあってprivateな変数メソッドがあるのがオブジェクト指向だと思ってる

クラスプロトタイプベースから無い。

ただES2015から糖衣構文としてClassは使えるようになった。

プライベート変数は今後実装される。プライベートメソッドは知らない。

まりES2015以降とそれ以前ではJavaScriptと言っても全く違う言語ってことだな。

anond:20180114175519

classがあってprivateな変数メソッドがあるのがオブジェクト指向だと思ってる

Typescritはそれっぽい(?)JSはそこまで詳しく知らない

2018-01-01

テキストの左揃えを右揃えに変えるだけで300万

https://togetter.com/li/1185610

300万が妥当かどうかは置いておいて、何十年も既存システムのお守りをしているシステム会社技術力が古いままで止まっている、というのはある程度同意する

だまされてるのは中小企業

よくわかってないから、これが妥当なんだ、と思って使いにくいシステムを延々高い保守費用と改修費用払って使い続けている

俺は、ITから中小企業システム課に潜り込んだ人間だが、このご時世に、オブジェクト指向も分かってないようなシステム会社が、VBA時代のようなロジックでごりごりと作られている使いにくいシステム無知企業お金を払い続けていて唖然とした

そのシステム会社とのつきあいはじんわりと減らしていって、俺が見つけてきた技術力のある会社に開発をシフトした

結果、経費は安く、性能も高くて使いやすシステムが出来た

元々のシステム屋が打ち合わせの時に、俺が参加し始めてから明らかにやばいこいつ技術分かるわ」という顔していたの覚えてる

俺のところはそのシステム会社のしがらみが、偉い人同士の何十年にもわたるおつきあい、以外になかったからなんとかなったけど、TOYOTAみたいに子会社システム屋だと、会社変えられなくて大変だよな、と思う

子会社も寝てても親会社仕事が入るから技術力磨こうとしないんだよな

経験済み

2017-12-26

オブジェクト指向の本が減った時代

バズワードが『オブジェクト指向からアジャイル』に移ったのだなあと気が付いた。

オブジェクト指向を学んでた時に悩んだ思い出。

2017-12-16

オブジェクト指向を教えられない

javaを人に教える機会があったのだが、オブジェクト指向がわからないという。

何がわからないのかわからない。

そういえば昔自分もわからなかったなーと思ったけれど、今思うと何がわからなかったんだろう。

それすらも思い出せない。

良くできた教科書で例え話や説明の仕方がうまい教科書なので、教科書に書いてある通りのことしか説明できないし、それでもわからんって言われたらもうなにも言えない。

2017-12-07

Webサービス企業求人条件を具体的に書け

はてな場合Webアプリケーションエンジニア

求められる知識経験

Incrementsの場合アプリケーションエンジニア

必須スキル

メルカリ場合ソフトウェアエンジニア(Server Side))

必須条件

ドワンゴ場合(【ニコニコ事業Webアプリケーションエンジニア正社員))

必須条件

こんなのそこらへんの学生でも持ってるスキルだろ。こういう甘い条件で人を集めてバサバサ不採用にして何がしたいのかわからん。たまにいいのが来ればいいや?みたいな感じ?どうせ内部では経歴や年齢や学歴差別してるんだろ(と疑われても仕方がない)。

Webサービス企業求人条件を具体的に書け。

2017-11-22

anond:20171122020027

行き過ぎたオブジェクト指向には弊害があることがわかってきたし、

デザインパターンも、たったそれだけのパターンで何でも解決できるわけがないだろ。

臨機応変もっと頭使えよ。的な論調はあるよ。

考案された時期から考えたら、もう古い技術と言っても差し支えないでしょう。

2017-11-14

ソフトウエア開発で「小規模だからいらない」と言われる物

オブジェクト指向は規模の大きいシステム有効、小規模でやっても煩雑になるだけ」

ソース管理ツールなんて本格的な開発でしか使わなくていいよ」

「小規模なソースIDEかいらんでしょ。テキストエディタで十分」

等々

でも、たいがい場合小規模開発でも使ったほうが楽になるよな。

2017-10-19

BASIC!のプログラミング教育適応性について

題:BASIC!のプログラミング教育適応性について

副題:Androidで動くBASIC!でプログラミング教育を行うメリットデメリット

少し考えてみたのでまとめとして投稿します。

01.はじめに

この文章は、Androidで動くBASIC!でプログラミング教育を行うメリットデメリット

ついて記載しています

02.BASICとは

BASICプログラム初心者向け言語として1960年代に発表された古い言語です。

極めて簡単文法インタープリターによる即時実行や1970~80年代パソコン

無償で搭載されていたこから沢山の人に利用されていました。

しかし、簡単ゆえの機能の少なさと即時実行方式のための性能の低さやその後の

優れたプログラム言語発表によりBASICの利用は著しく低下しています

03.BASIC!とは

BASIC!はアンドロイドタブレットスマートフォン上で動くアプリです。

Google playからインストール可能無料で利用できます

BASIC!

https://play.google.com/store/apps/details?id=com.rfo.basic&hl=ja

BASIC文法踏襲していますが、Android向けに大幅に命令拡張されており、

GPS等の各種センサー情報取得やSQLiteデータベース機能WEBVIEWを利用

したHTMLCSSJS表示・実行など約500程度の命令群で構成されています

無料広告なしのアプリインストールするだけでこれらの機能が利用可能

インタープリターなのですぐに実行することもできます

04.BASIC!でプログラミング教育を行うメリット

メリットについては以下があげられます

a.BASICプログラミング知識を持つ人は以外と多い

 過去の栄光というかBASIC自体は広く利用された時期が過去存在パソコン

 だけでなくポケコンゲーム機等でも利用できました。

 BASIC!は基本はBASIC拡張であり文法変数の取り扱いにおおきな違いは

 ありません。

 その当時、少しであってもBASICを触った人は多いのでメンターとしての

 再教育は容易だと考えます

b.HTML,JS,CSS勉強継続してできる

 BASIC!は手続き型と呼ばれる非オブジェクト指向言語であり最新の言語

 とは異なっています

 BASIC!のネイティブ命令群だけだと他の言語へのスムーズな移行は難しい

 かもしれません。

 しかし、BASIC!にはHTML5アプリのようにBASIC!自体webViewでHTML,JS,CSS

 を動かすことができます。(HTMLモード

 HTML,JS,CSS現在Webの標準であり、進化を続けています

 特にjavascriptオブジェクト指向言語進化採用される領域フロント

 エンドからバックエンドまで広がっています

 

 BASIC!自体webViewは他のAndroidアプリ同様、chromiumベースAndroid

 システムWebviewの更新により常に最新化されています

 HTMLモードではjQuery,Angular,ReactなどのJSライブラリも利用できます

 最初BASIC!ネイティブプログラムHTMLモードJSを利用したプログラム

 とSTEPを踏んだ学習可能だと思います

c.インストール環境設定が容易

 前述の通りアプリインストールするだけで利用できます

 追加の課金プラグインなどは不要です。

 またAndroid2.3以降でインストール可能です。

 但しAndroid5.0あたりからAndroidシステムWebviewが導入されているので

 Android5.0以降の端末を選択する方が無難です。

 インストール後、環境設定をする必要もありません。

 端末のルート化も不要です。

d.Androidデバイス等が安価

 安いタブレットであれば1万円程度で新品が買えます中古スマホであれば

 更に安価です。

 またプログラムを作るのでキーボードもあった方がいいと思います

 キーボードも2~3千円程度で安価です。

 もちろんソフトウェアキーボードフリック入力など)でもプログラム

 作れます

 パソコンよりもはるか安価プログラミング教育が実現可能です。

e.子供Androidデバイスに慣れている

 iPhoneの登場以来現在の子供たちはタッチパネルAndroidデバイス

 慣れています

 通常のノートパソコンに比べ違和感は少ないと思います

 また教える大人側も日頃パソコンよりスマホを触る人は多いと思います

 教える側の負担も小さいのではないかと考えています

f.可搬性が高い

 ここで述べる可搬性とは別のデバイスで同じプログラムを動かす場合

 容易さの事です。

 BASIC!はインタープリタなのでソースファイルのみを別のデバイス

 SDカード経由等でコピーすれば基本的には動作します。

 仮にHTMLモード場合は併せてHTML,JS,CSSコピーするだけです。

 別のデバイスにはBASIC!さえインストールされていれば動きます

 BASIC!独自プラグイン拡張モジュールなどは特にありません。

05.BASIC!でプログラミング教育を行うデメリット

メリットだけでなくデメリットもあります。以下の通りです。 

a.性能上の問題

 BASIC!の実体Javaで出来ています。すなわちJavaよりは性能は悪い

 ことになります

 実際、大量の繰り返しや大量の文字列を扱うプログラムは性能が出ないので

 処理に時間がかかります

 Androidスマホタブレット自体パソコン演算能力には劣ります

 大量の実験データ演算するような教育には向いていません。

 但し、プログラミング教育には大きな障害にならないと思います

b.BASIC!自体の仕組みの問題

 BASIC!はプログラムを作るアプリである以上当然文法エラーを実行時に

 表示する仕組みになっています

 ただ一部エラーチェックが甘い部分もあり本来エラーとすべきところを

 そのまま実行する場合もあり想定外の結果となる可能性もあります

 次にエディタは単なるテキストエディタと同等の機能しかなく最近

 エディタにあるようなシンタクスハイライト入力補完といった機能

 ありません。

 ただ比較シンプルプログラムを作る教育では大きな影響は無いと

 考えています

c.一部機能に制約がある

 前述の通りHTMLモードではJSが動かせます。ただし制約があります

 JSローカルモードで実行されるという事です。

 非同期通信などを行おうする場合JSが実行時エラーになる可能性が

 あります

 またデータベース機能であるSQLiteへの操作についても文字型項目しか

 利用できない制約があります

 JSローカルモードのみなのは教育の事を考えると少し残念ですが

 それでも多くのフロントエンドJSは実行可能なので教育には

 使えるという理解でいます

d.参考となる文献がほぼない

 教育には教科書またはそれに準ずる書籍必要だと思います

 該当する書籍がないのが実情です。

 ただ1冊だけ日本語で書かれた電子書籍存在します。

 ■BASIC! ~ 分かりやすい教本で一から学べるコンピュータ言語 - AndroidSQUARE

 http://blog.livedoor.jp/an_square/archives/51887786.html

 BASIC!の文法自体は極めて簡単なのでどうにかなると思います

06.結論

上記の通り、メリット/デメリットを列挙してきました。

デメリットもあるものメリットの方が大きい印象です。

とくに教える側の負担が少ない点がメリットだと思います。 

 

2017-10-07

技術負債

今、俺が抱えてる技術負債

前提:

社内システム在庫管理等をWebアプリで開発し運用している。

素のPHP+JavaScriptで、フレームワークは使っていない。

ライブラリはjQuery及びそのプラグインのみ使用

前任者・・・開発経験のない者 自主学習で見よう見まねで作った。

・・・上記システムを引き継ぎ無しで受け取る。開発経験あり。

問題点

(1)バグ、潜在バグが多くある

変数比較において型を含める厳密な比較を行なっておらず、

ユーザー入力した値によっては想定した動作と異なる事がある

MVCモデルオブジェクト指向?なにそれ?

(2)異常系が想定されていない

すべて正常なデータが投入されたという前提で稼働

ファイル削除にしても存在チェックや削除できたかどうかも確認していない

(3)コメントが無い

コメントがほぼ無いので埋め込まれマジックナンバー意味が解らない

迂闊にデータを触れない

(4)すべて絶対パスハードコーディング

ローカルテストする前提でコーディングされておらず

常に本番機で開発している

これらに対し、細かい分野でリファクタリングしている。

リファクタリング対応できないほど大きい問題リメイクするしかない

2017-09-30

C言語最初に学ぶべきではないが最初に学ぶことのメリット

私は今とある大学の4年生です.

本格的にプログラミングを始めとしてコンピュータ科学を学び始めたのは大学入学してからです.

今では幸運なことにインターン都内ベンチャー企業golangpython, scalaを用いた大規模なシステム構築に携わっています.

給料日本大学生にしては破格といえるのではないでしょうか. それも大学で真面目に勉強したお陰であると胸を張って言えます.

大学の方の卒業研究では組み込み系のセキュリティに関して研究しています. 正直テーマ選びに失敗したなと思っているので大学院にいったらシステムプログラミング系の方にシフトしようと思っています.

無駄話が過ぎました. 表題に関して話しましょう.

私が大学の授業で初めて習ったプログラミング言語C言語でした. 理由教授に聞くと, 並行して座学で教えるコンピュータ科学系の専門授業全般と結びつけやすいからだそうです.

最近TwitterQiita, StackOverflowなどでは「初学者最初に学ぶべきプログラミング言語はなに?」という質問に対して, JavaScriptPythonから入るのがベストだと言う人を沢山見かけます.

私自身こういった意見には賛成です.

JavaScriptブラウザというものが有る限り20年は消えなさそうですし, Python機械学習を始め, Webシステムでも使え, 非常にクレバー言語です.

javaオススメだと思います. 30億?ものデバイスで動く言語ですしドキュメント豊富です. 色々な分野にも応用が効くでしょう.

さて, そんな中でC言語という悪い評判しか聞かない, でもやたら色々なところで使われているらしい言語最初に学ぶメリットとは一体なんなのでしょう.

一つ, 私が思いついたのはコンピュータと仲良くなれる.

というのもC言語アセンブリ機械語に比べれば, 人間にわかやすく, かつコンピュータ側にも近いという顔をもちます.

真面目にプログラミングしようとするとどうしてもそのコンピュータの仕組み(主にメモリ) について学ぶ必要が出てきます. これらの知識現代の開発に置いて役立つ分野比較的限られると思います.

しかし, それらは思わぬバグ特定意図していない動作改善に役立つことがあるかもしれません(実際に私もいくつか出会いました)

二つ目は他の言語を学ぶ時のハードルが非常に低くなる. これはどの言語を学んでも同じだとは思います.

そして, 他の言語の高級な機能に思わず涙ぐみながら感謝すること間違いなしでしょう(javaのsplitとか他の言語にもあるHashとか)

ただ, 私はC言語構造体やポインタのお陰でオブジェクト指向プログラム言語を低レイヤ実装的な面と概念的な面ですんなりと理解することができました.

そしてよく挫折ポイントとなるポインタ(ダジャレじゃないですよ?). これもメモリの住所だと考えればそれほど難しくはないのです.

メモリ管理を適切に設計した時あなたプログラムボルト並みに早く走ってくれるかもしれません.

他の言語では味わえないやりがいがあるのもこの言語の魅力でしょう.

書いているとこれぐらいしか思いつきませんでした.

それでもコンソールに初めて Hello World! が出力された時の感動はやはり忘れられません.

昨今, 高機能言語が沢山ありますが, あなたプログラミング生活ささやかアクセントとしてC言語を学び直してみてはいかがでしょうか?

きっと今使っている言語普段言わない感謝言葉を述べること間違いなしです.

それではこんな駄文に付き合っていただきありがとうございました.

一刻も早く世界からC言語が消えることを祈っています.

2017-09-16

株式会社はてな株主構成から見るはてな実態

今戯れに時価総額と持ち株比率から換算した資産表作った

近藤 淳也 66.33% 4482581400円 ○

(株)はてな 6.59% 445352200円

毛利 裕二 5.98% 404128400円

梅田 望夫 4.30% 290594000円

栗栖 義臣(社長) 2.61% 176383800円 ○

大西 康裕 1.97% 133132600円 ○

伊藤 直也 1.79% 120968200円 ○

田中 慎樹 1.41% 95287800円

田中 慎司 1.30% 87854000円 ○

小林 直樹 1.15% 77717000円

お金の額面はともかくの話なんだけど、

○をつけたのは、はてなコードを書いたことがあると"思われる人"。「名前 プログラミング」で検索して有意な結果が出た人に○つけた。各株主の詳細知りたい人は適当にググって

で、さら


はてな年収は524万円が平均年収です。(有価証券報告書調べ)

http://heikinnenshu.jp/joho/hatena.html

あると好ましい知識経験

スクリプト言語(主に Perl/PHP/Python/Ruby/JavaScript)によるアプリケーションライブラリ開発の経験

ScalaGoにおけるアプリケーションライブラリ開発の経験

iPhoneアプリ、もしくはAndroidアプリの開発経験

UNIX系OSRDBMS特に LinuxMySQL)についての基礎知識

オブジェクト指向プログラミングの基礎知識

コンピュータサイエンスアルゴリズムデータ構造分散技術自然言語処理技術機械学習データマイニング型理論)に関する基礎知識

ネットワーク技術HTTPDNSTCP/IPなど)についての基礎知識

大学卒/275,000円〜

http://hatenacorp.jp/recruit/fresh/application-engineer-entry

って、エンジニア待遇悪すぎじゃない?

この毛利 裕二という人の持ち株の資産新卒給料(計算だるかったか計算からボーナス抜いたけど、手取り分で考えたらボーナス分くらいは消えるだろう)で稼ぐとしたら122年かかるし、梅田 望夫という人は88年かかる。本当にこの人たちにはそれほどの価値(上にあげた新卒に求めるやたらと高いスペック)分の価値があるのか?いや、価値があると思ったから株をあてがったんだろうけど...

まぁなんていうか...、はてなのエンジニアのみなさんお疲れ様です...業務がんばってください

完全に外様の俺から言えるのは"エンジニアに"もっと給料たくさん払った方がいいんじゃないかということだけです

2017-09-06

メソッドチェインとか

Rubyもっとマイナーだった7年くらい前にどや!ってメソッドチェインでコード書いて公開したら読みづらいって言われまくった記憶がある。っていうか俺もメソッドチェインっていう言葉概念も知らなかったし、周りにもメソッドチェインっていう言葉も書き方も浸透してなかった。とにかく俺は関数繋げて1行で欲しい値を取り出す方法の方がカッコいいと思っていた

当時はgithubを俺は知らなくて(いま調べたらgithub設立2008年から自分が知らなくてもしょうがないな)google docsに載せて公開してた

たぶんrailsっぽいメソッドチェインの1行関数で返り値を次の1行関数に渡すような書き方が今後増えていくと思うけどどうなんだろう

あとやっぱりオブジェクト指向って微妙な感じがある。データの持ち方をその都度クラスにはめ込んでインスタンスにするって方法がなんか気持ち悪い。関数だけでいいじゃんってなる。コード書く時にわざわざクラスを作りだしてそれに関数を押し込めなきゃいけないのがなんか気持ち悪い(コード書いてる時に最初に思いつくのはクラスでもオブジェクトじゃなくて関数だ。車を欲しいから車を発明するじゃなくて移動手段が欲しくて結果として車が発明されるのだ)

犬っていうクラスが無くても、鳴くっていうメソッド存在させておきたい。後から大きな声で鳴くにして、最後あたりで犬が鳴くとか猫が鳴く、みたいなコードの書き方ができなくてクラス最初に作らせるのが思考に縄をかけられる感じがしてキモい

人間思考抽象から具象に下ろすことだって多々あるのに、オブジェクト指向もといオブジェクト思考は具象から抽象に上げなきゃいけないか

例えば俺の妄想はこんな感じ

get_text.from("anond.hatelabo.jp").all_page.tag("title").to_a

2017年現在なら、これも通じる感じある

で、これで使われてる自作メソッドクラスに押し込めようとすると急激にダルくなる

2017-08-26

https://anond.hatelabo.jp/20170826233411

メインフレームCOBOLについては、言語には責任はない。

仕様がわからないんだ。

銀行同士で違うシステム使ってるって時点で察しろ

あと、オブジェクト指向が判れば、もう大体言語による差なんて小さいと思うけどね。

WindowsPowerShellはクソだけど。

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん