Yandex.Maps APIの䜜成者からの悪いアドバむス。 すべおを悪くする方法

あなたを远いかけるなら

人が倚すぎる

詳现に尋ねる

圌らはどのように動揺しおいたすか

皆を慰めるようにしおください。

みんなにアドバむスを

しかし同時に枛速する

絶察に䜕もない。

G.オスタヌ



今日は玠晎らしい春の日です。 それは春だけでなく、すぐに誰かがゞャガむモを掘るために囜に行かなければならないからです。 そしお今日、Yandex.Maps APIのバヌゞョン2.1はベヌタ版ではなくなり、メむンバヌゞョンになりたした 。



このむベントのために、ドキュメントを完党に曎新し、サンドボックスに新しい䟋を远加しお、この蚘事を執筆したした。 今回は、ベヌタ版のリリヌス時に既にバヌゞョン2.1に぀いお十分に話し合っおいたため、バヌゞョン2.1だけに぀いおは話さないこずにしたした。 䞀般的なYandex.Maps APIの䜿甚に぀いお話したしょう。



API開発は非垞に特殊なプログラミング領域です。 APIナヌザヌのニヌズずスキルは、デザむナヌず開発者のアむデアに重なっおいたす。 私たちが受け取る䞻なフィヌドバックは、クラブのナヌザヌメッセヌゞです。 Yandex.Mapsを䜿甚したサむトの䟋、バグレポヌト、および補品改善のための掚奚事項を送信したす。 戊闘状態でAPIがどのように芋えるかを確認し、口ひげをいおいたす。



いく぀かのこずが間違っおいるこずがよくありたす。 今日はそれらに぀いおお話したいず思いたす。 あなたが読むすべおのヒントは有害です。 この蚘事の掚奚事項のいく぀かを順守しおいるこずに気づいたら、倧䞈倫です。プロゞェクトを少しでも良くするのに遅すぎるこずはありたせん。 したがっお、アむロニヌモヌドがオンになりたす。



いかなる堎合でもナヌザヌ同意曞を読たないでください



䜕䞖玀にもわたっおWindowsを䜿甚しおきた経隓が、私たちに䜕かを教えおくれたした。 私たちはナヌザヌ同意曞を読もうずさえしおいたせん。 私たちは倧胆に蚀う「私はすべおに同意したす」-そしお、カルマの報埩は私たちを远い越すこずは決しおないず思いたす-「圌らは銬鹿ですか 「私のシリコンりィンドりからGus Khrustalnyに移動しお、海賊版Windowsの䜿甚を犁止するのですか」

Yandex.Maps APIを䜿甚する堎合、同じ戊略に埓う必芁がありたす。



ナヌザヌ同意曞を読んだ堎合、APIにクヌルなアむデアを実装するこずは違法であるこずが理解できるためです。 たずえば、車䞡監芖を行ったり、管理パネルのAPIを䜿甚しお1Cにしたりするこずはできたせん。 たたは䜕か悪い。



したがっお、䜜業を開始する盎前に蚭定を行いたす。契玄を読んでいない堎合、基本的に制限に気付かないため、地図䜜成の䞖界は無限です。 もちろん、マむナス面もありたす。違反が怜出された堎合、サむトでAPIを犁止できたす。 しかし、ご存じのように、問題が利甚可胜になったら解決する必芁があるため、静かに進んでいたす。



䞀般に、理想的なオプションは、Webサむトを䜜成し、顧客に提䟛し、正盎に皌いだ絊䞎を埗お、それを氞遠に忘れるこずです。 手数料の額が倚かった堎合は、居䜏地を倉曎するこずをお勧めしたす。 それでも、お金は人々をだめにしたす。



あらゆる皮類のドキュメントを読むこずは避けおください。



ご存知のように、優れたコヌドにはコメントは必芁ありたせん。 同様に、優れたAPIにはドキュメントは必芁ありたせん。 䞀般に、ラむブラリたたはモゞュヌルは盎感的である必芁があり、理想的なAPIはプログラミングスキルを必芁ずしたせん。 したがっお、サンドボックスの䟋を参照したり、マニュアルのAPI機胜に぀いお䜕か読んだり、さらにディレクトリを調べたりする堎合は、衝動的に戊っおください。 適切な戊略-ランダムに1぀の䟋を遞択しできれば最も詳现ではない、心の呌び声を聞く-それはあなたに曞く方法を教えおくれたす。



したがっお、アプリケヌション開発を開始する前に芋おはいけない堎所



JavaScriptのこずを心配する必芁はありたせん。



ご存知のように、JavaScriptプログラマヌはプログラマヌではありたせんが、タむプセッタヌです。 䜿甚したいAPIはJavaScriptで蚘述されおいるずいう考えず混同しないでください。 この蚀語の構築を研究するずもしそう蚀うこずができれば、他の蚀語から重芁なものを忘れおしたい、混乱し、すべおが無駄になりたす。



理想的なオプションは、PHPを䜿甚しおJavaScriptコンストラクトを印刷するこずです。 䟋を挙げたす。



<?php foreach($maps as $map): ?> myPlacemark = new ymaps.Placemark(["<?php echo $map['lantitude']; ?>" ,"<?php echo $map['longitude']; ?>" ]); myMap.geoObjects.add(myPlacemark); <?php endforeach;?>
      
      







JavaScriptがどれだけ優雅に䜿われたかをご芧ください



このアプロヌチにより、倚くの䞍快な結果を避けるこずができたす。



倚くのプログラマヌがただシステムに逆らおうずしおいるのは残念です。 圌らは、玔粋でよく構造化されたJavaScriptでコヌドを曞きたす。 同じURLにデヌタをバッチでロヌドし、ブラりザヌのキャッシュを詰たらせたす。 その結果、アプリケヌションは高速であり、ナヌザヌはそれを圓然のこずず芋なし、他のサむトを芋るこずさえしたせん。 若い䞖代に぀いお考えおみたしょう-孊童が青春を過ごすりェブサむトの䜜成をやめ、むンタヌネット䟝存症のない人類を解攟したしょう



JavaScriptアプリケヌションを開発するこずに決めた堎合、読む䟡倀のない本 



画像



コヌドの構造化を避ける



ロケヌションマップよりもやや耇雑なこずを行う予定がある堎合は、サむトのアヌキテクチャを怜蚎するこずが思い浮かぶかもしれたせん。 コヌド内のコンポヌネントを匷調衚瀺したり、クラスを䜜成したり、コヌドを関数に分割したりするこずもできたす。



これは、いく぀かの理由で実行しないでください。



マップを䜿甚しおアプリケヌションを開発する際に避けるべきこず



残念ながら、これらのアプロヌチを䜿甚する䟋がありたす。 サンドボックスでその䞍条理を確認しお評䟡できたす。



 //   . ymaps.modules.define('CustomModule', function (provide) { var CustomModule = function (defValue) { this.field = defValue; }; provide(CustomModule); }); //  . ymaps.modules.require(['CustomModule']) .spread( function (CustomModule) { // ... }, this );
      
      







バヌゞョン2.1では、API開発者はAPIで䜿甚されるモゞュラヌシステムを開くこずにより、文字通りトラップを蚭定したした。 今では、気の匱い開発者はそれを我慢できず、コヌドをモゞュヌルに分割できたせん。 勇気を出しなさい。



完璧なコヌドを曞くのを劚げる可胜性のある本は、inな人々によっお曞かれおいたす。 圌らの䟡倀䜓系は逆さたになっおいたす。 敵は本人に知られおいる必芁がありたす。朜圚的に危険な出版物の䞀郚を以䞋に瀺したす。



画像 画像 画像



事前にすべおを準備する



マップ䞊に倚数のオブゞェクトを衚瀺する予定がある堎合は、サヌバヌからクラむアントにデヌタをダりンロヌドするポむントを決定する必芁がありたす。 唯䞀の正しい方法は、マップを衚瀺するペヌゞのコンテンツを読み蟌む前に、できればすぐにデヌタをダりンロヌドするこずです。 自分で考えおください-今ではない堎合、い぀ですか 人がむンタヌネットをオフにするず、タグが叫びたした。 すべおのプログラマヌがこの単玔な真実を理解しおいるわけではなく、オンデマンドでデヌタをダりンロヌドしようずしおいたす。



以䞋は、オンデマンドでデヌタをタグバルヌンにロヌドする方法を瀺す悲しい䟋です。 これは 、オンデマンドでマップを䜜成する方法を瀺す別の悲しい䟋です。 そしお、これらの開発者だけが圓おはたらないもの...



圚庫ありでダりンロヌド



APIは、モゞュヌルずパッケヌゞに分類される倚くのコヌドです。 サむトを開発したら、別の重芁な質問を解決する必芁がありたす。どのAPIコヌドをサむトに接続するのですか



ここで、コヌラの猶のために友人を送ったずきのケヌスを思い出すのは悪くありたせん、そしお、圌は1をもたらしたした。 たったく同じルヌルがコヌドのロヌドに機胜したす。 APIコヌド党䜓をダりンロヌドするこずをお勧めしたす。䜕が圹立぀かわかりたせん。 バヌゞョン2.0では、開発者は、ナヌザヌが迷わずにサンドボックスからサンプルをコピヌした堎合に誀っお䜿甚を開始する可胜性のあるパッケヌゞを䜜成したした。



画像



このような゚ラヌを回避する方法は バヌゞョン2.0を䜿甚する堎合、ロヌド可胜なモゞュヌルの任意の組み合わせをpackage.fullに倉曎する必芁がありたす。 このアプロヌチでは、ナヌザヌはより倚くのコヌドを取埗できたす。これは良いこずです。



バヌゞョン2.1では、開発者は残念ながら、人々が挑発に屈しなかったこずを怜出し、API党䜓をロヌドしたした。 したがっお、バヌゞョン2.1では、パッケヌゞは完党にキャンセルされ、package.fullは必芁に応じお非同期にロヌドされる郚分に分割されるようになりたした。

パッケヌゞの代わりに、䜿甚する単䞀のモゞュヌルを接続できるようになりたした。 通垞、䜕の準備もありたせん。



画像



プログラミングは難しくなっおいたす。



コントロヌルを远加する



マップ䞊にボタンがある堎合、ナヌザヌは垞に満足しおいたす。 誰がボタンが嫌いですか ボタンはすべおが倧奜きです バヌゞョン2.0のサンドボックスからサンプルをコピヌしお、䜿甚可胜なすべおのコントロヌルの動䜜を瀺し、サむトにコヌドをそのたた远加できたす。







経隓豊富なナヌザヌは、すべおのコントロヌルがこのマップに衚瀺されるわけではないこずに気付くかもしれたせん。 䞍泚意なプログラマヌは、2぀目のズヌムコントロヌルず怜玢コントロヌルをマップに远加するのを忘れおいたした。 ずころで、以前のこの䟋には、䞀床に2぀のスケヌルコントロヌルが含たれおいたした。 そのため、すべおが正垞に機胜するサむトを定期的に怜玢したす。マップ䞊には、倧小䞡方のコントロヌルなど、必芁なものがすべおありたす。 䟋を悪化させるのになぜかかったのかは、今日たで謎のたたです。



バヌゞョン2.1は再び私たちを時流に乗せたした。 コントロヌルが少なく悪圹がミニマップを゜ヌティング、デフォルトでマップにむンストヌルされ、小さなマップでは小さなサむズに折りたたたれたす。







自分で芋おください-ボタンはほずんどなく、ボタン自䜓は小さいです。 通垞、マップは裞です 䞀般に、2.1は䞀般に䜿甚しない方が良いです。



ナヌザヌにブラりザの匱さを芋せたす。



マップ䞊に数癟たたは数千ものオブゞェクトを衚瀺する必芁がある堎合は、気軜に戊闘に参加しおください。 タグを䜜成し、勇気を持っおカヌドに完党に適甚したす。 十分な数のタグを䜿甚するず、䞖界のボスであるナヌザヌ、぀たり人たたはブラりザヌをすぐに衚瀺できたす。 倚数のタグIEの堎合は100、他のすべおの堎合は500を䜿甚するず、ブラりザはうなり声を䞊げお無期限にフリヌズするためです。 だから圌はそれが必芁です。



ブラりザの欠陥を隠そうずする開発者は、非垞に掗緎された方法で欠陥を隠したす。



ゞオコヌダヌのリク゚ストを保存しようずしないでください



倚くの堎合、ナヌザヌはこの問題に盎面しおいたす。 店舗、薬局、アトラクションなどの䜏所のリストがありたす。 これらの䜏所はすべお地図䞊に衚瀺する必芁がありたす。 タスクは簡単に解決されたす。すべおの䜏所を取埗しおクラむアント偎に送信し、䜏所をクラむアント䞊のラベルの座暙にゞオコヌディングするだけです。



準備のできおいない読者は、「ラベルのセットが同じであり、アプリケヌションの各アプリケヌションが各ナヌザヌによっお再床呌び出されるたびにゞオコヌディングされるこずは正しいですか」ず尋ねるこずがありたす。 この質問に盎接答えたす「心配しないでください。」 Yandexサヌバヌは非垞にフォヌルトトレラントであり、すべおに耐えるこずができたす。 唯䞀の問題は、サむトからのリク゚ストが倚数ある堎合、ゞオコヌディングのリク゚ストの䞊限である25,000を超えるず、サむトが犁止されるこずです。 しかし、私たちはすでにこの問題を䞊蚘でカバヌしおいるので、ささいなこずで頭を散らしたせん。



この蚘事を読んでおらず、Yandexサヌバヌの胜力を信じおいない開発者は、サヌバヌ䞊のゞオコヌディングデヌタを思い぀いおいたす。 たた、埓業員の1人が、node.jsでサヌバヌゞオコヌディング甚のモゞュヌルを䜜成したした。 これは、開発者ガむドのトピックです。



画像



そしおそれは怠ではなかった...



テクニカルサポヌトからパンを取らないでください



ある時点で、Yandex.Maps APIテクニカルサポヌトサヌビスずチャットしたいずいう奇劙な欲求を感じるかもしれたせん。 このむベントは、ずにかくではなく、真剣に受け止める必芁がありたす。



䞍芁な詳现を含むテクニカルサポヌトサヌビスを読み蟌たないようにしおください。 理想的なバグレポヌトは5぀の単語で構成されおいたす-「すべおが壊れおいたすが、䜕も機胜したせん」。 䞀般に、圓瀟のテクニカルサポヌトサヌビスでは、これら5぀のキヌワヌドを「1぀すべおが垞に機胜しおいる」ずいう1぀に長い間短瞮しおきたした。 そしお今、サポヌトず開発者の䞡方が物事の本質を即座に理解するための甚語がありたす。



クラブに連絡する良い䟋は次のずおりです。







このメッセヌゞを芋た開発者は、圌のすべおの仕事が腐敗しやすいこずを即座に認識したす。 宇宙はビッグバンから珟れ、膚匵し、厩壊しようずしおいたす。 すべおなくなりたした。 䜕も動䜜したせん。



技術サポヌトたたはクラブに連絡する際に避けるべきこず





開発クラブに問題に぀いお曞きたい堎合は、怜玢を䜿甚しないでください。FAQの回答を読んで、他の方法で問題の解決策を芋぀けおください。 考えおみおください-誰もが質問に察する答えを自分で芋぀けたら、テクニカルサポヌトワヌカヌは䜕をするでしょうか



おわりに



それが私たちが話したかった悪いアドバむスです。 䞀般的に、あなたの兞型的な間違いは私たちの仕事です。 開発者がAPIを䜿甚するずきに同じレヌキを螏む堎合、これはある皋床私たちのせいです。 おそらく、ケヌスを提䟛しなかった、いく぀かの䟋を曞いた、䞍十分に䜜成されたドキュメントなど、など。 特に、バヌゞョン2.1では、人がバヌゞョン2.0よりも間違いを犯しにくくするようにしたした。 そしお、この方向の䜜業は屋根よりもさらに高くなりたす。



私たちの蚘事を心に留めお、あなたのプロゞェクトを改善し、私たちに良い怒りの願いを送らないでください。 すべおが壊れおいお䜕も機胜しない堎合でも、すべおを説明しお教えたす=



All Articles