未来のOOPBaruch SadogurskyずYegor Bugaenkoが20幎埌にどのようにプログラムするかに぀いお

オブゞェクト指向プログラミングの抂念は、開発者によっお異なっお認識されたす。誰かが、圌女が履歎をダンプする時だず蚀いたす。 誰かが、䜕を、どのように、そしおなぜ圌がするのかに぀いお考えおいない。 誰かが叀兞的なパタヌンをひっくり返しお「玔粋なOOP」のパラダむムで䜜業しようずしおいたす。



Joker 2016を芋越しお、Baruch SadogurskyにYegor BugaenkoずJavaおよびOOPの運呜に぀いお話し合うよう䟝頌したした。 これに由来するものは、オヌディオ圢匏で聞くか、ビデオで芋る







そしおカットの䞋には、すべおのリンクずのむンタビュヌの完党な転写がありたす。



Baruch jbaruch Sadogurskyみなさん、こんにちは。 私の名前はBaruchです。 デブリヌフィングポッドキャストのホストであるJFrogの開発者であり 、 JokerやJPointなどのカンファレンスの講挔者であり、 JavaOneやDevoxxなどのがらくたです。 そしお今日、晎れたマりンテンビュヌで、私たちは特定のサヌクルで有名なYegor Bugaenkoず䞀緒に座っおいたす。



Egor yegor256 Bugaenko人生のために そしお、私はOOP、Javaに぀いお考えたした...



バルク私たちの人生はOOP、Javaです。 最初に、聞いたこずがない人のためにあなた自身に぀いお話しおください。





Egor Javaプログラマヌ、アヌキテクト。 私は玄20幎前、孊校に戻っおプログラミングを始めたした。最初はPASCAL、次にアセンブラヌ、次にC、次にC ++、そしおJavaでした。 過去2幎半、私はブログを曞いおいたすが、そのおかげで䜕らかの名声が珟れたした。 私は本を​​曞いおいたす、今私は第二巻を曞いおいたす。 Javaで䜿甚されおいるオブゞェクト指向のアプロヌチを少し修正しようずしおいたす。 どこかで刀明したしたが、どこかではありたせんが、私はこの考えを倧衆に䌝えようずしおいたす。



バルヌクなにか



゚ゎヌル圌らは怒り、異なる反応をしたす、はい。 誰かがそれを気に入っお、誰かは気に入らないが、それは効果を生み出し、誰かはいく぀かの考えを埗る。 誰かがそれに反察しおおり、私自身が珟時点ですべおの考えに自信を持っおいるずは蚀えたせんが、プロセスは進行䞭です。 はい、私は生蚈のために䜕をしおいたすか私はパロアルトに小さな分散チヌムがあり、珟圚玄50人、いわば合蚈100人の埓業員がいたす。 ここシリコンバレヌのお客様は、これらのプロセスを耇数のプロゞェクトマネヌゞャヌで管理しおいたす。 どこからでも、さたざたな囜のプログラマヌ。 ここで私はそれを皌ぎたす、たあ、 本は少しお金を䞎えたす。



バルヌクたくさん質問がありたす。 たず、鋭い質問をしたす。どこから来たのですか あなたは1幎前にロシア語のJavaコミュニティの衚面に珟れ、゜ビ゚ト埌の空間で枊を巻いお䌚議を歩き回り、私が理解したように、あなたはそれを始めたした。 それは䜕だった、バリモア







Egor開始したせんでした。さらに7぀のカンファレンスがありたす。招埅しおくれたした。拒吊したせん。 しかし、今ではあたり掻発ではありたせん。 過去6か月間、私は25のカンファレンスで少し話をしたした。



バルクそれで、どうしお起こったのですか、なぜ必芁なのですか これは非垞に倧倉な䜜業です、私は経隓から知っおいたす。 プログラマヌ、アヌキテクト、CTOが突然決定したす。「しかし、6か月かけお䌚議に出かける必芁がありたす。」



Egor良い質問です、私はそれに答えがありたせん。 しかし、ある時点で、私は芳客を増やしたいず思いたした。 ブログはそれに私を襲った。



バルクなぜこのオヌディ゚ンスが必芁なのですか あなたはブログであたり皌ぐこずはありたせん、あなたは本であたり皌ぐこずはありたせん、私はこれに商業的な関心はありたせん。 たぶんあなたはそのような人を雇っおいたすか



Egor私はもうこのプロセスをコントロヌルしおいたせん。私自身が䜜成したプロセスの人質になりたした。 私はブログを始め、コミュニティが珟れ、人々は圌らのフィヌドバックを䞎えお、私が圌らず話すこずができるように私を匕き出し始めたした。 これは双方向のプロセスです。 䞀方で、私はいく぀かの重芁な䌚議で話をしたかったモスクワのJPoint 、キ゚フのJEEConf 、ベラルヌシの同じJET 。 そしお、人々は私に䌚い始めお、「ここにも来おください」ず蚀い始めたので、他の堎所は圌ら自身に珟れたした。



バルヌク興味深いall話がありたすが、それは非垞に難しいですが、詊しおみたす。 あなたがするこずは宗教的な意味合いをもたらしたす。 あなたはプロセスずしお「予蚀」を持っおいたすあなたは䞖界を歩き、いく぀かの完党に「異端」なこずを話し、人々はあなたを愛し、あなたを憎み、あなたはもはやそれをコントロヌルしたせん。 これは完党に聖曞の物語です。 そしお、圌らは通垞、ひどく終わりたす、これらの預蚀者です



しかし、私はあなたのオブゞェクト指向プログラミングの抂念に぀いお倚くの質問を持っおいたす。今、私たちはそれらを䞀貫した方法で構築しようずしおいたす。 䞻な質問は次のずおりです。「オブゞェクト指向プログラミング」ずいう甚語に䜕らかの意味を䞎えようずしおいたすか。それは、あなたが蚀うように、今ではないだけでなく、私の意芋では決しおありたせん。



オブゞェクト指向プログラミングず呌ばれるものがありたす。 これは、私には、オブゞェクト指向プログラミングず呌ばれるものずは異なるようです。 そしお、問題は「なぜ」です。あなたが正しいず思う方法がありたす。そしお、機胜的、オブゞェクト指向など、あらゆるパラダむムのように賛吊䞡論を持぀こずができたす。 なぜ、私たちの䜿い慣れた、快適で、萜ち着いた、オブゞェクト指向プログラミングのニッチにあなたの方法を固守しようずしおいるのですか



Egor新しいパラダむムを䜜成しおみたせんか



バルクたあ、圌女は新しいパラダむムです。 蚀葉には意味がありたす。 OOP-これらはクラス、オブゞェクト、特定のパラメヌタヌを䜿甚しおオブゞェクトにメッセヌゞを送信しお倀を取埗したす。 これは、ポリモヌフィズム、継承、私たちが知っおいるこず、愛などです。 さあ、「いいえ、オブゞェクト指向プログラミングはそうではありたせん。」 なんで



゚ゎヌルたあ、むしろ、「なぜ」ではなく「なぜ」。 「なぜ」ずいう質問には答えがありたせん。これには䜕らかの目的があるはずなので、そのような明確な目暙はありたせん。 金融もその他もありたせん。 これは、「なぜ」ずいう質問です。なぜ私はこれをしおいるのですか。 私が長幎䜿っおきたものが本圓に奜きではないので...私が曞いたコヌド、私が芋たJava、たたは出䌚ったラむブラリヌが奜きではないので、私は圌らず䞀緒に仕事をするのは気が進たない。 私だけでなく、私の呚りの人々、プログラマヌ。 圌らがどんなコヌドを曞いおいるのか、埌でこのコヌドを理解し、それを維持するのがどれほど難しいか、プログラムするのがどれほど䞀般に䞍快かを理解しおいたす。




私が曞いたコヌドも、私が芋たJavaも、出䌚ったラむブラリも、奜きではありたせん。





䌚議で聎衆に質問をしたした。「あなたは自分の仕事が奜きですか このコヌドが奜きですか、朝起きお、このコヌドを芋お、曞きたいですか、そうする必芁があるから曞きたすか」誰かが「はい、私たちはそれが奜きです」ず蚀いたすが、私は倚くがcだず思いたす。 最初の3日間たたは3週間はれロからプログラムを䜜成し、それが奜きで、次の3幎間はあなたがしなければならないのであなたがそれを曞くずき、私は自分を芚えおいたす。



バルクたあ、これはすべお明らかですが、これは正垞です...



Egor異垞だず思う。



バルヌクたあ、これはよく知られた珟象であり、これに察する解決策も知られおいないずいう事実に、たずえば、今日の関数型プログラミングを䜿甚するすべおの人を取り䞊げお、圌らはこう蚀いたす。これはあなたのJavaに嫌です。」 そしお、圌らは別のパラダむムを採甚したした。



゚ゎヌルしかし、圌らはそこにたわごずたす。 圌らがOOPを理解せず、単にそれを避けた堎合、圌らはそれが䞀般に悪いこずだず蚀った、すべおのOOP ...最近、私はブログずしおオブゞェクト指向プログラミングに぀いお有名人から匕甚を集めたした。 圌らはすべお厄介なこずを蚀う。 ダむクストラから始たり、今日で終わりたす。 これは原則ずしお厄介な抂念であるず蚀われたすが、「スパゲッティコヌド」の䜜成に圹立぀ため、䜿甚しないでください。



Baruchええ、そうです、圌らは業界がオブゞェクト指向プログラミングをしのいだず䞻匵しおいたす-手続き型プログラミングをしのぐように。 そしお、ここで再び同じ質問に戻りたす。 自然な答えは、「OK、ここに新しいパラダむム、ここに「OOP 2.0」がありたす。 そしお、あなたは蚀う「いいえ、あなたが奜きではないものは実際には異なっお呌ばれおいたす。」 そしお、新しいパラダむムそれ自䜓は簡単な方法ではありたせんを導入する代わりに、他の䜕かず呌がうずしおいる理由を人々が理解しおいないずいう抵抗を加えたす。




䞻流党䜓が間違っおいる、95が間違っおいる





゚ゎヌルさお、圌らの錻を突くために。 これは、人々が考えるために必芁な挑発の芁玠です。 あなたが蚀うように、私が圌らに「OOP 2.0」を提䟛する堎合、よく、数人がそれを読んで、圌らは蚀いたす「さお、もう䞀぀のアむデア、それを脇に眮いお、それに぀いお考えおください。 Javaがあり、それは矎しく、進歩しおおり、䞻流であり、誰もがそれに぀いお曞いおおり、巚倧な䌚議が開催され、巚倧なフレヌムワヌクがあり、すべおが順調です。」 他に新しい楜園はありたすか たあ、圌は半分のフレヌムワヌク、8人のプログラマヌを持っおいたす。 私がこの䞭心的な䞻流に来お「みんな、䞻流党䜓が間違っおいる、あなたは95間違っおいる」ず蚀うず、人々は動き始め、怅子にそわそわし、圌らは3番目の䜕かを提䟛されないこずに気づきたすが、無芖できたすが、圌らは今日、あなたは皆に害を䞎えるだけだず説明しおいたす。 もちろん、それは倧きな感情を匕き起こしたす。 たくさんのメヌルがあり、人々は私に次のように曞いおいたす「私は10幎間続けお䜕か間違ったこずをしお、あなたの蚘事が私の目を開いたこずに気づきたした、今、私はすべおを理解し、私はそれをこのようにやりたす」蚀うのをやめお、私たちは䜕をすべきかを知っおいたす。」 このような倚極反応は、それが人々に圱響を䞎え、圌らがそれを気にしおいるこずを瀺唆しおおり、それは良いこずです。 そしお、あなたが脇に立っおいる䜕かをするなら、それは面癜い人が少ないようです。



バルヌク぀たり、人々に考えさせるために、あなたは具䜓的に射線に入る。



Egorそうだった。 私が蚘事を曞き始めたずき、私は最初にヌル参照が悪いずいう蚘事を持っおいたした。 倚くの人がそれに぀いお知っおおり、話しおいるので、圌女はあたり挑発的ではありたせん。 私は少しシャヌプな口調で曞きたした。ほずんどの蚘事はそれを避けようずしおいたすが、基本的に悪い、悪い、觊れないでくださいず曞いおいたす。 それから圌はもう少し進んで、 ゲッタヌずセッタヌに぀いお曞きたした 。 ぀たり、私は誰にも挑発したくありたせんでした。自分の経隓に基づいお曞きたした。 それから圌は反応を远跡し、それが倚くの人々を生呜に匕き付けるこずに気づきたした、そしお、圌らはこれに同意したす、圌は嫌いではなく倚くの信者を芋たした。 そしお、憎しみが぀ながりたした。 しかし、私はそれらを無芖したした。誰かのためにそれが手元にあるのを芋たので、誰かがこれに同意するからです。 私はもう少し進んだ。 しかし、私は意図的ではありたせん。そのような仕事はありたせんでした。今、矀衆を刺激し、圌らがどのような反応を瀺すかを芋お、トラフィックを収集し始めたしょう。 そのような目的はありたせんでした。 私は最初に、数幎の経隓からいく぀かの蚘事を曞きたした。







バルヌク぀たり、あなたは宗教的なテヌマに戻っおいるのですが、それは私を行かせたせん。これはある皮の改革䞻矩です。 ぀たり、新しい読曞をしおいるのです。 そしお、あらゆる改革䞻矩のように、あなたを異端者ず呌び、あなたを危険にさらしたい人がいたす...それどころか、信者がいたす。 そしお、䞀般的に、このスズメバチの巣を棒でかき混ぜたした。



Egorさらに、憎しみは䞻に少し読んだり、少し聞いたり、リンギングを聞いたりする人です-たあ、あなたは109号のデブリヌフィングでそれを芋たした、 Zhenya EvgenyBorisov Borisovが来お、本圓に䜕も読たずにブランド化したずき。 私はただ圌に本を送りたいです。 私は本圓に圌に党郚を読んでもらい、すべおをヒヌプに入れおほしいです、あなたは本を読んで、あなたはそれを理解しおいたす。 そしお圌は䜕かを読んで聞いた「ああ、圌はこれは悪いこずだ、これは悪いこずだず蚀っおいるが、圌は愚か者だ。」



そしお、ほずんどの吊定的な反応はそれだけです。 人々は単語の半分を孊び、意芋を圢成したした。 同意する人がいるので、これは私を混乱させたせん。 すべおの意芋の盞違があった堎合、矀衆を無駄に挑発しおいたのなら、私は䞀生懞呜に考えたす。 それで圌らは最近Gitter-chatで行った、1ヶ月半で120人が集たっお、人々は議論しおいる。 倚くの堎合、ある皮のアむデアがあり、「どうやっおこれをやりたすか」ず尋ねられたすが、他の人は圌に答えたす「私たちはそのようにしたす」ず私のブログぞのリンクを䞎えたす。 思考がもはや私のものではなく、すでにそこに䜏んでいお、人々がそれを䜿甚しおいるのを芋るのはずおも楜しいです。 いいね 同じチャットルヌムには嫌いな人がいたすが、私たちは䜓系的に消そうずしたす。 そしお、圌らはしばしばあなたにこの質問をしたす「なぜあなたはOOPを倉えおいるのですか、私たちは倧䞈倫、私たちはJavaを持っおいたす...たあ、それをあなた自身の方法ず呌び、私を攟っおおいおください」



バルヌク 私の意芋では、これが問題です。改革掟であり預蚀者であるこずは、通垞ビゞネスにずっおは悪いこずです。 お金は沈黙を愛するからです。 そしお、私の質問は、これが䟋えばあなたの採甚プロセスにどのように圱響するかずいうこずです。




クラむアントが来お、私たちが非垞に異なるこずをしおいるず聞いたずき、「圌らは間違いをしないでください」ずいう疑問が生じたす。





Egor はい、あなたは絶察に正しいです、それはビゞネスにひどく圱響したす。 第䞀に、雇甚に問題があり、第二に、クラむアントを芋぀けるこずに問題がありたす。 クラむアントが来お、私たちが他の人ずは非垞に異なるこずをしおいるず聞いたずき、「圌らは間違っおいたせんか」ずいう疑問が生じたす。 私たちはあなたのためにすべおを泚文したす。そしお、6ヶ月埌に私たちはそれをすべお捚おる新しいチヌムを探したす。 そうです。 募集にも問題がありたす-本圓に私たちのずころに来たいず思っおいる人はいたすが、その数は非垞に少ないです。 しかし、私にずっお興味深いのは、他の倚くの䌁業の䞭で他の䌚瀟ではなく、他ずは違う、より良いこずをする䌚瀟であるこずです。 たぶん私は間違っおいたす。



バルク ナヌゞンボリ゜フは、むンタビュヌ䞭に応募者にテストタスクを䞎え、コヌドを芋せ、「これは䞀䜓䜕なのか、曞かない」ず蚀ったこずがどれほど頻繁に起こるかを尋ねたした。



Egor Zhenya Borisovが、ある皮の「報告䌚」で、圌はむスラ゚ルで芪しみのあるチヌムがあり、人々は自分のやり方で䜕かをし、他のすべおの䌚瀟はこのチヌムからの人々を犁止したず蚀っおいるのを聞いた ぀たり、あなたがその䌚瀟から来た堎合、それはそれで、むンタビュヌはありたせん。なぜならあなたの脳は壊れおいお、あなたは違った曞き方をするからです。 私たちにもそのようなこずがあるこずを理解しおいたす。 私たちが仕事のためにJavaプログラマヌを採甚するずき、私はJavaコヌドをしばしば提䟛したす。 そしお、゚ラヌを衚瀺しおください。 䜕を修正したすか そしお、倚くの人にずっお、このコヌドは正しいように思われ、セッタヌ、ゲッタヌ、nullがありたす...私が話すすべおがそこに提瀺されおいたす。 そしお、それに泚意を払っおいない人は、単にリファクタリングしお、すべおがうたくいくず信じおいたす。 私たちはそのような人々を拒吊したす。 しかし、人はたくさんいたすが、それほど倚くはありたせんが、「はい、これらのセッタヌ、ゲッタヌがありたす-どんなゎミですか、これはナンセンスです...あなたはそれを別様に曞き換える必芁がありたす」 ここにそのような人々が䞀床にいたすop、入っおください。 そしお圌らは、1ヶ月で1人か2人の善良な人がいたす。



バルク これは良いペヌスです。



Egor 私たちは急いでいるわけではありたせん。珟圚、数千人のチヌムを構築しおいるわけではありたせん。 珟圚、このようなタスクはありたせん。 しかし、私には、状況は垂堎で倉化しおいるようです。 倚くの人は私を聞いおいたせんが、誰かが私を聞いおいたす。 この倉曎は、商業的なものではなく、私の䌚瀟に及ぶものではないず思いたす。 そしお、地䞊の人々は倉わり始めたす。 数週間前、ある人が私の本を読んだず曞いおくれお、本圓に気に入っお、その本を同僚に芋せたのですが、今では圌らは圌ずは友達ではありたせん。 しかし、圌は行っお芋せたので、䜕らかの効果がありたした。 これは楜しいです。



バルク このすべおの人類孊的な関心を理解しおいたす。 本が衚瀺されるので、本に぀いお少し話したしょう。 それはあなたが䞀緒に遞択にノックするこずを決めたブログずしお始たりたした...



Egor いいえ、最初は1幎少しの間ブログを曞いた埌、Manning Publisherから連絡がありたした。 そしお圌らは本を曞くこずを提案したしたあなたが曞いお、私たちは出版したす。 私は忙しかったので、最初は「いいえ」ず蚀っおから、6か月埌に曞くこずにしたした。 圌は昚幎の倏に座っお、2ヶ月でそれを曞きたした。 ブログの資料なので、難しくありたせんでした。 珟圚、私は第2巻を執筆しおいたすが、より難しいこずです。特定のトピックに぀いおはこれたで執筆したこずがなく、人々からの反応はありたせん。 私が最初のボリュヌムを曞いたずき、私は読者の反応を知っおいたした、私は倚くのコメントがありたした。 マニングではそれはうたくいきたせんでした。私は本を自分で出版したした。 最初は本を曞きたいずは思っおいたせんでしたが、出版瀟が提案したずきに考えたした。



バルヌク あなたのコンセプトは発展し぀぀あり、盞反する瞬間があり、絵がただ完党に展開されおいないずきに、䜕らかのメンタルワヌクが進行䞭です。 曞かれた内容を再考する必芁がありたす。 この第2巻は第1巻の再解釈ですか、それずも第1巻を先送りしお「䜕だった」ず蚀いたすか



゚ゎヌル いいえ、私は最初のものには觊れたせん、私は2番目に圌に蚀及したす「それで私はそれを蚀った、そしお今、私は少し違うず蚀っおいたす...」



バルク これは私が探しおいるものです。あなたが間違っおいたず曞かれおいるのはどこですか




䞍倉性はチャットで非垞に掻発に議論されおおり、䞍倉オブゞェクトが䜕であるかを完党に理解するこずはできたせん...





゚ゎヌル たあ、それは私に起こりたす。 私は間違っおいるず曞いお、䜕かを明確にしたす。 今、チャットで䞍倉性が非垞に掻発に議論されおおり、䞍倉オブゞェクトが䜕であるかを完党に理解できないず仮定したす...そしお、この議論は非垞に掻発で、ブログには4぀のこずがあり、本の章党䜓がありたす...互いに矛盟するものがありたす。 しかし、私はこれにオヌプンです、私が間違っおいたず蚀っおも問題はありたせん。



バルク 理論的思考で「私は間違っおいた」ず蚀うのは名誉であり、クヌルであるが、簡単です。 ビゞネスに戻る本番に入ったコヌドをどうするか



Egor 質問はいいです。 しかし、たずえ間違いがあったずしおも、それほど深刻ではありたせん。 党䜓ずしお曞き盎さなければならないような基本的な゚ラヌはありたせん。 少し巊、少し右ですが、䞀般的にはないポむントがいく぀かありたす。 そしおコンセプト-私は「スリム」ずは蚀いたせんが、それは䞀方ずずもに発展したす。 私はアむデアに぀いお曞くだけでなく、コヌドも曞きたす。 たた、3幎、2幎、1幎の補品もありたす。 それらを芋るず、3幎前、2幎前の補品では、最近私がやっおきたこずはあたりありたせん。 セッタヌはありたせんでしたが、堎所によっおはヌルポむンタヌがあり、ORMがどこかで䜿甚されおいたす。 ぀たり、オヌプン゜ヌスでいく぀かのこずが発芋され、理論的思考がただ初期段階にあるこずがわかりたす。 たた、より新鮮な補品はより興味深いものであり、OOPのすべおの矎しさをすでに䜿甚しおいたす。



バルヌクそうですね、これはYegorによるOOPの抂念が実際にあるずいう事実の興味深い開瀺です-それは進行䞭の䜜業です。 あなたのコンセプトに合った人の倚くがこれを理解しおいるかどうかはわかりたせん。 䞻に本のため。 通垞、人が本を曞くずき、それは玙の䞊にあり、著者は「ここで私が間違っおいたずいうコメントで私に曞いた」曎新を远加できないため、䜕らかの圢で完成したず認識されたす。 いわば䞍倉です。 倚くの人は、それがすべお生き、発達し、流れるこずを知らないようです。 そしお実際、あなたは耳を傟けるだけでなく、批刀を受け入れる準備ができおおり、それが本圓に䜕らかの圢で抂念を倉える可胜性がありたす。




クラスは䞀般的に間違いです。 クラスがあっおはなりたせん。





Egor䟋を挙げたす。 たずえば、私の本では、クラスは必芁で重芁な特定の抂念であるず曞かれおいたす。 デビッドりェストず話したした。 そしお圌は、クラスは䞀般的に間違いだず蚀った。 クラスがあっおはなりたせん。 圌が正しいのか、それずも圌が䜕を意味するのかはただわかりたせん。



バルヌククラスが間違いであるずいう抂念はJavaScriptに由来しおいたす。 プロトタむプによるオブゞェクト指向プログラミング。 そしお、クラスが必芁であるかどうかに぀いお、非垞に高いレベルで非垞に深刻な議論があり、それは20幎間続いおいたす。 そしお、賛吊䞡論がありたす。 長所オブゞェクト指向プログラミングでは、クラスは実際には完党に䞍芁な゚ンティティです。 圌女は䜕も远加したせん。 䜜成する必芁があるず思うので、オブゞェクトを䜜成しおから、同じオブゞェクトをさらに䜜成したす。 しかし、ここでは、䞀方で、䞍倉性のような倚くの問題がありたす。オブゞェクトは倉化する可胜性があり、以前に䜜成された人はどうなりたすか 倉曎する必芁がありたすか、新しいものですか、叀いものですか そしお、なぜ数行のコヌドの違いで䜜成された同様のオブゞェクトが異なる振る舞いをするのでしょうか 他の堎所でプロトタむプが倉曎されたためです。 さお、さあ、今クヌル。 オブゞェクトをかじるクラスずしおのこの青写真の抂念、この問題は解決されたす。クラスは䞍倉なものであり、それからそのオブゞェクトは自分の人生を動かしお生きるからです。 そしおプロトタむプでは、これはそれほど明確ではありたせん。 したがっお、考えるべきこずが確かにありたす。



Egorはい、はい。 そしお、気が倉わったらどうなりたすか



バルクたあ、クラスも拒吊するず、䞀般的にハルマゲドンになりたす。



゚ゎヌルただ拒吊しおいたせんが、デビッドは「誰がこれを発明したのですか、なぜ必芁なのですか」



バルクさお、クラスず継承を攟棄するこずを本圓に決めたような仮想的な状況を考えおみたしょう。 あなたはJavaを握りしめた人です理由を理解する必芁がありたすが、これに぀いおも説明したすが、OOPのもずでJavaをある皋床たで曲げるこずができたす。



゚ゎヌルはい。



バルククラスが敵察的なOOP構造であるず刀断した堎合はどうしたすか



゚ゎヌル私はそれを解決しないこずを願っおいたすが... ...なるほど、「これを行うのはどれほど悪いか」ずいう蚘事がいく぀かありたすが、Javaに代わるものはありたせん。Javaが改善されれば、いく぀かの新しい蚀語があるでしょう、そしお、我々はこれずそれをするこずができたす。




メモリ管理をお勧めしたす。ディスクずメモリは1぀のものでなければなりたせん。 ディスク䞊のファむルを管理するJavaプログラマヌを提䟛したす-オヌプン、クロヌズ。 なぜあなたはメモリで同じこずをできないのですか





たずえば、メモリ管理を提案したす。ディスクずメモリは1぀のものでなければなりたせん。 ディスク䞊のファむルを管理するJavaプログラマヌを提䟛したす-オヌプン、クロヌズ。 なぜあなたはメモリで同じこずをできないのですか これは抂念的な質問です。 Javaはこれを提䟛したせんが、正しい蚀語がメモリの管理を可胜にするはずだず私には思えたす。 C / C ++に䌌おいたすが、䟿利な方法がありたす。 しかし、Javaは倉わりたせん。



バルヌクこれは次の質問に私を連れお行きたすなぜあなたは完党なグリップでJavaを぀かんだのですか 真のOOP蚀語は存圚しないずいう結論に既に達したした。 比范的少ない血であらゆる蚀語構文を蚘述できるJVMプラットフォヌムがありたす。このプラットフォヌムでは、すべおのカヌドゲヌムず、あなただけが望む真のOOPの䜿いやすい行動のすべおの女の子がいたす。 それはあなたに起こらなかったのですか



Egorこれは倧倉な䜜業です。倚くのフォロワヌ、コミュニティはいたせんが、䜕にも぀ながりたせん。 倧勢の人々がいるはずです。そうでなければ、死んだ蚀語になりたす。 助けおくれない人もいたすが、これは倧倉な仕事です。ただ準備ができおいたせん。 私は非垞に叀い蚘事を持っおいたす。圌女は4歳です。そこで、正しい蚀語で持ちたいすべおの機胜をたずめたした。 だから、蚀語ず開発プラットフォヌムを組み合わせる必芁があるように思えたす。 䟋を挙げたしょう。 コヌドからGitの履歎にアクセスできないのはなぜですか コメントでこのファむルのハッシュタグを取埗できたす、それがすべおです。



バルヌクこれは玠晎らしいラむブラリですが、必ずしも蚀語の機胜であるずは限りたせん。 原則ずしお、蚀語を最小化し、他のすべおを必芁なラむブラリを䜿甚しお接続するアプロヌチがありたす。 たた、Gitでのコミットの履歎を気にしたすが、たずえば私はそうではありたせん。 この機胜が必芁です-ラむブラリを接続すれば、それができたす。



Egorそれをラむブラリヌにするこずは䞍可胜です。それは蚀語でなければなりたせん。



バルクこれは興味深い質問です。 なんで




このラむブラリはJavaのAOPのように曲がっおおり、AspectJのように暪に接着されおいるため





Egorこのラむブラリは、JavaのAOPのように曲がっお芋え、AspectJのように暪に接着されおいるためです。 クヌルなアむデア、クヌルですが、蚀語ではサポヌトされおいたせん。 埌で衚瀺される泚釈がありたす。 4番目のJavaでは、AOPがたったくサポヌトされおおらず、これはすべお非ネむティブテクノロゞヌを介しお行われおいたした。 それらは非ネむティブなので、すべおが䞍快でunいです。 Javaたたは任意の蚀語は、定矩によりAOPを提䟛する必芁があり、デフォルトで蚀語に組み蟌たれる必芁がありたす。 たた、Gitぞのアクセス。 これは私たちの物語です-誰がコミットし、どれだけコミットするか-これはすでに蚀語の䞀郚です。



バルクしかし、今日はGitであり、明日はMercurialです。



Egorこれは問題です、はい。



バルクそしお、この問題はラむブラリによっお解決されたした。 今日は、明日のために別の図曞通に接続したした。



Egor私は同意したす。「蚀語+ラむブラリ」の䜕らかの組み合わせが必芁かもしれたせん。 蚀語を䜿甚しおアクセスする機䌚が必芁です。



Baruchより倚くのSPIがこの蚀語に圹立぀可胜性があるずいう事実に同意したす。



Egor衚瀺されるこれらの機胜のうち玄40個を次に瀺したす。 継続的むンテグレヌションずしたしょう。 圌女は絶察に舌に接着されおいたせん。 たたは自動化を構築したす。 これらすべおのMavenずグレヌドがあり、これらはネむティブにはJavaずは関係ありたせん。 Javaコヌド自䜓は、ビルドされるこずを知りたせん。 コヌド内でこの情報にアクセスできたせん。 たたは、ナニットテストなど。 Javaには単なるクラスずしお存圚したすが、どのクラスですか これらのオブゞェクトは䜕ですか bookオブゞェクトがありたす。bookTestオブゞェクトずは䜕ですか これは倉です。 そしお、これらのメ゜ッドはメ゜ッドではなく、玔粋な手順、マむクロスクリプトです。 それはどういうわけか異なっお行われなければなりたせん。 これは、テストがJavaの埌に行われたためです。 ナニットテストはあなたにずっお必芁です-よくそう圫刻したす。 それはネむティブではなく、互いに固執したせん。 これが䜿甚されたすが、蚀語内により䟿利な手段があるはずです。 私たちはこれに行くず思いたす。 単玔にバむナリをコンパむルできるCのような単玔な蚀語は20幎前のものであり、今では䜕か新しいものが必芁です。



バルヌクこれは20幎前のJavaであり、Cはすでに45歳です。



Egorさらに、䜕か新しいものがあるはずです。 登堎するず思いたす。 䜕かを䜜成するかもしれたせんが、わかりたせん。 それには時間がかかり、そしお最も重芁なこずには、コミュニティがなければなりたせん。 自分で䜜成するこずで、玔粋に自分の決定を埗るこずができたす。 « Git, - », , Git -. « Mercurial Subversion», , . , .



: , ? — Kotlin , , Ceylon, .



: Ceylon , Kotlin — . , , , , , , , . — by definition. , ! design pattern — , « , ». , « design pattern, ». . .




Java EE, , best practices, Spring.





: . Java . . Java EE, , best practices, Spring. : Java EE , . , , best practices , . , Java- — Sun, Oracle, from the source, . など。



: . , , . , . , Kotlin. Kotlin, : , , , , . : , - , . . , 4 , 14, , , .




Kotlin , -, . , .





Ruby. , , , 
 , - . , , . Ruby, - , Java . Kotlin , -, . , .



: , - .



: . «, , ». « , ». ? , .



: , , — . — , . , , — - , , , , , , , , , .



: , . , , , . , .







: Java C? , .



: . , . , , . , — , - , , , -, .




, . .





: . , , -, , . , null — , N , -. , , Java-. , , , , , . . , , . , . . , . , -. — . . , , « null, ». , . .



: , . . , , . . « , — , 20 . , ». : « — , ». - — , . , — . . . null -. , . , - , ? . « , ». « , ». , .



: . , , , 20 
 — — , , . , , , , — , null' « ». , , Git «Yegor Style», code review . null', . , , — - , , , , .



: , , , antonarhipov , , .



: , , « »! — - ZeroTurnaround, . . , , , , , , , , , , 




: .



: , , , , . , , , -, , , — , , , . , , , , , , , -. , , , , , , ! , — null', — . — . , .







: , . , , : - , -, - ? , , ? - . .



: — , « ». one step at a time — . , . , credibility , , , , , - , , , , , 
 : , , - : «, , , , , , — ». , practical advice . , - , .



: , , .



: , , .



: , . , , . , « , ». , , , . concern.



: , revision . , . — , : . , revision , .



: .



: ? 今埌の予定は



: Java Day , , , , discussion board . , . JPoint' - , , .



: , , « » , . , .



: !



: . « , ». , , .




, - .





: , , , , - , . , -, - . ORM, , . , - . , . , , — Java Day , . , , . , ORM, .



: , , , . . ?



: Oredev . , , . , , JPoint', . , , .



: — . .



: , , ?



: .



: . , , , . ORM , MVC — , . , , -. , ORM .



: , .



All Articles