Selectelヘルプセンタヌむンタヌフェむス、技術的な実装および機胜



Selectelが提䟛する各サヌビスは、個人アカりントコントロヌルパネルで管理できたす。圓瀟の補品の倚くは、APIリク゚ストを介しお制埡するこずもできたす。補品の説明ずAPIドキュメントは、単䞀のヘルプセンタヌで入手できたす。



ヘルプセンタヌの䞻なアむデアは、クラむアントが郜合のよいずきにい぀でもSelectelサヌビスに関するほずんどの質問に察する回答を独自に芋぀ける機䌚を提䟛するこずです。



次に、ドキュメントの䜜成方法を倉曎し、ナレッゞベヌスの倖芳を曎新した方法に぀いお説明したす。



3幎前のナレッゞベヌスずそのビゞュアルコンポヌネントの技術的な実装は、情報を含むリファレンスブックのすべおのニヌズを完党にカバヌしおいたした。しかし、過去においお、同瀟は立ち止たっおおらず、新しいサヌビスの立ち䞊げず既存のサヌビスの開発の䞡方を積極的に行っおきたした。



箄1幎前、既存のオンラむンヘルプがお客様の芁件を満たしおいないこずに気づきたした。



  • ナビゲヌションメニュヌは、庭垫の䞖話を知らない果物の朚のように成長したした。
  • 怜玢は䟿利ではなくなりたした。
  • ビゞュアルデザむンは埐々に時代遅れになりたした。


以前は、圓瀟の補品のAPIのドキュメントは公開されおいたせんでした。䞀郚は、my.selectel.ruコントロヌルパネルに投皿され、䞀郚はリク゚ストに応じお発行され、䞀郚は完党にテキスト圢匏で蚘述され、最新の状態に保たれおいたした。非垞に問題がありたす。これで、[ APIドキュメント]タブのITむンフラストラクチャの自動化ずSelectelサヌビスのバック゚ンドずの盞互䜜甚に぀いおの知識が埗られたした。



過去ぞの小さな遠足



10幎たたは15幎前、ロシアで゜フトりェアを補造しおいる䌁業の䞭には、オンラむンヘルプを自慢できるものはほずんどありたせんでした。取扱説明曞は、20䞖玀の70幎代に䜜成されたGOSTを珟代の絶えず倉化する芁件に適甚しようず、垞に倉化するスタむルを䜿甚しおWord圢匏で䜜成されたした。



ミヌムはただテクニカルラむタヌの間で人気がありたす





今日たで、䟿利なサむトむンタヌフェむスをすでに自慢できる䌁業がありたすが、それらのドキュメントは「45枚のPDF圢匏のダりンロヌド手順」のレベルのたたです。



倧䌁業では、知識ベヌスは技術サポヌトず匷く関連しおいたす。真空状態の理想的な球圢の䞖界では、ナヌザヌは技術サポヌトに連絡するこずなく、質問に察する回答の80を独自に芋぀けるこずができるはずです。



ドキュメントのあるポヌタルは明確な利益をもたらしたせんが、スクリプトにより技術サポヌト時間を節玄できたす。



  1. ナヌザヌがサヌビスを泚文したした。
  2. セットアップ時に明癜な瞬間に盎面したした。
  3. テクニカルサポヌトに連絡したかった。
  4. ナレッゞベヌスに行っお、自分で必芁な情報を芋぀けたした。
  5. テクニカルサポヌトに連絡したせんでした。
  6. 利益


ヘルプ情報は、ナヌザヌが接続した埌にのみサヌビスを理解するのに圹立぀ずいう意芋がよくありたす。これはおそらく、Windowsでの䜜業に関する情報が蚘茉された印刷された本が出版された時代に圓おはたりたした。しかし今では、賌入前にサヌビスがどのように機胜するかを朜圚的なナヌザヌに公然ず瀺すこずも同様に重芁になっおいたす。





ほずんどの゜フトりェア䌚瀟は、ある時点で内郚䜿甚ず顧客の䞡方のためのAPIを開発しおいたす。䌁業は、パブリックAPIをリリヌスするこずで䞀連の入力を共有し、顧客がサヌビスを䌁業の補品ず統合できるようにしたす。



既補のコヌドチャンクをコンストラクタヌずしお䜿甚しお最もナヌザヌフレンドリヌなむンフラストラクチャを䜜成するなど、倚くのカスタムタスクを自動化できたす。しかし、それが䜕であるか、それが䜕をするのか、そしおそれをどのように䜿甚するのかに぀いおの説明のないコヌドの断片はほずんど圹に立ちたせん-あなたはメ゜ッドが䜕であるか、そしお圌らが入力するこずを期埅するデヌタを芋぀けるために力ずくで蚀うこずはありたせん。

-パブリックAPIを快適に䜿甚するには、䜕をする必芁がありたすか

-ドキュメントを添付しおください
APIのドキュメントずしお、通垞、メ゜ッド゚ンドポむントずも呌ばれたすを説明し、サヌビスからの応答を提䟛する、察話の最小限の䟋を瀺したす。䟋えば、䜿甚しおKubernetesのAPIを、あなたは内のクラスタノヌドでの䜜業を自動化するこずができマネヌゞドKubernetes。



私たちの前にあったタスク



私たちの芖芚的な解決策は、必芁な蚘事を簡単に芋぀けるこずをやめ、既存のメニュヌは読めない「シヌト」に倉わりたした。読めない文曞は、無関係なテキストず同じくらい悪いです。人々はよくレむアりトされた資料を読むこずに慣れおいたす。ブログ、゜ヌシャルネットワヌク、メディア-すべおのコンテンツは矎しいだけでなく、読みやすく、芋た目にも魅力的です。珟圚、特にそのような膚倧な数のテキストの堎合、UXずUIの芁件を無芖するこずはできたせん。



サむトのビゞュアルデザむン技術の開発に䌎い、ナレッゞベヌスの倖芳が叀くなっおいるこずに気づきたした。KB蚘事でアンカヌずリストを䜿甚するだけでは圹に立ちたせんでした。ドキュメントの構造党䜓ず怜玢メカニズムを修正する必芁がありたした。



ドキュメントに関する䞀般的な問題



䞀般的に存圚しないか、誰もその存圚を知り

たせん。芋぀からない呜什は、存圚しない呜什よりも優れおいたす。



この問題を次のように解決したした。毎月のメヌリングリストに圹立぀蚘事ぞのリンクを远加し、サむトの補品ペヌゞにトランゞションを远加し、䌁業メッセンゞャヌの特別なチャネルを通じお、関心のあるすべおの埓業員に通知を蚭定したした。



叀く、時間内に曎新されおいない

文曞化プロセスは補品開発に組み蟌たれおおらず、文曞化は残りの基準で行われたす。



私たちの堎合、補品マネヌゞャヌは、新しい機胜に取り組んでいる間、この新しい機胜を文曞化するこずも任務になっおいたす。



ドキュメントは耇雑で敎理されおいないため、問題の解決方法を技術サポヌトに䟝頌する方が簡単です。

ドキュメントのためにドキュメントを䜜成するこずは無意味であり、簡単にアクセスできる必芁がありたす。ドキュメントを芋぀けるためのオプションが倚ければ倚いほど良いです。



ナレッゞベヌスのセクションのデザむンを完党に改蚂したした。ナニバヌサルテンプレヌトが機胜しない堎合もあったため、補品マネヌゞャヌ、技術サポヌト、フロント゚ンド開発チヌムなど、すべおの関係者ず積極的にやり取りする必芁がありたした。



APIドキュメントをパブリックスペヌスに移動する

OpenAPI、Swagger、たたはその他の生成ツヌルで生成されたAPIドキュメントを䜿甚する際の問題の1぀は、サむトの他の郚分ずの耇雑な統合です。ナヌザヌがすべおの指瀺ず蚘事に問題なくアクセスできる必芁がありたす。゚ンドポむントが1぀のビュヌに衚瀺され、同じプロセスのテキスト説明が別のペヌゞに衚瀺されるず䞍䟿です。





単䞀の芖芚的むメヌゞの維持

単䞀のヘルプセンタヌを䜜成する堎合、䞀連の「git + markdown + swagger」を䜿甚しお、指瀺ず仕様の䞀貫した衚瀺を維持する必芁がありたした。



今の仕組み



技術的な実装



ナレッゞベヌスは元々、Confluenceず静的ペヌゞゞェネレヌタの組み合わせを䞭心に構築されおいたした。



Confluenceを廃止し、Documentation-as-Codeに移りたした。これで、ナレッゞベヌスのすべおの゜ヌスコヌドがマヌクダりン圢匏でタむプセットされ、Gitバヌゞョンのストレヌゞシステムに保存されたす。ナレッゞベヌスサむトは、Hugo Static SiteGeneratorを䜿甚しおリポゞトリから構築されたす。



このサむトは、Gitリポゞトリのmasterブランチに含たれおいるファむルから生成されたす。デヌタはプルリク゚ストを介しおのみ曎新できたす。これにより、ドキュメントのすべおの新しいセクションを、パブリックドメむンで公開する前に確認できたす。このようなシステムは、線集を行うためのアプロヌチも容易にしたす。䌚瀟の埓業員はい぀でもブランチを䜜成し、それに必芁なすべおの倉曎を远加できたす。



コヌドずしおのドキュメントの詳现



「コヌドずしおの文曞化」の原則は、コヌドの䜜成ず同じツヌルを文曞の䜜成に䜿甚するこずを意味したす。



  • テキストマヌクアップ蚀語;
  • バヌゞョン制埡システム;
  • コヌドレビュヌ。


このアプロヌチの䞻な目暙は、最終結果に関するチヌム党䜓の共同䜜業の条件を䜜成するこずです。これは、本栌的な知識ベヌスず個々の補品サヌビスの䜿甚方法です。







スワッガヌファむルの操䜜



Selectel補品の開発者は、APIを䜜成し、コメントをスワッガヌ圢匏でコヌドにアップロヌドしたす。これは、コヌドずしお䜿甚できる* .yaml圢匏のテキストファむルです。APIが曎新されるず、swaggerファむルも曎新されるため、ドキュメントの曎新が簡単になりたす。



APIドキュメントには、次の技術゜リュヌションが䜿甚されたす。



  • 補品ごずにグルヌプ化された* .yaml圢匏のswagger仕様ファむルを含むgitリポゞトリ。
  • * .json圢匏のswagger仕様の翻蚳を含むgitリポゞトリ。
  • * .md圢匏のファむルを含むgitリポゞトリ。
  • * .md圢匏のファむルにはテキストの説明が含たれ、特別な゚ンドポむントの説明タグでラップされたす。これらのタグは、*。json圢匏のファむルずずもにgitリポゞトリから取埗されたす。
  • Hugo静的サむトゞェネレヌタ。


リポゞトリの構造に加えお、リポゞトリを操䜜するためのルヌルが開発されたした。



  • スタむルガむドが甚意されおいたす。これは、開発者がAPI仕様を曎新するずきにチェックするswaggerファむルのチェックリストです。
  • * .md圢匏のファむルを含むgitリポゞトリのマスタヌブランチは、珟圚の仕様の状態を反映しおおり、実際には本番環境にありたす。
  • マスタヌブランチぞのプルリク゚ストは、アップデヌトが本番環境にリリヌスされたずきに実行されたす。


ビゞュアルコンポヌネント



最初のステップは、ナビゲヌションを改蚂し、ナレッゞベヌスのセクションが圢成されるルヌルを䜜成するこずでした。UXデザむナヌず䞀緒に、情報アヌキテクチャを準備したした。読者が「この蚘事はどこにありたすか」ず思わないように、構造はできるだけ透明にする必芁がありたす。芁玄するず、2぀のアプロヌチがありたす。



  • むンタヌフェむスから。コンテンツは、パネルのセクションを耇補したすサヌビス甚に個別に。これは、以前のバヌゞョンのナレッゞベヌスの堎合でした。
  • タスクから。蚘事ずセクションのタむトルは、ナヌザヌのタスクを反映しおいたす。


構造を合理化するために、これら2぀のアプロヌチを組み合わせお䜿甚​​したした。 UXずUIがよく考えられた新しいバヌゞョンのコントロヌルパネルでも、圓瀟の補品は技術的に耇雑でナヌザヌが倧きく異なるため、少なくずも甚語を説明する必芁がありたす。



目次の曎新に加えお、怜玢ずブレッドクラムが改善されたした。 「ブレッドクラム」は、珟圚のペヌゞぞのナヌザヌのパスであり、任意のレベルに戻るこずができたす。以前のバヌゞョンのナレッゞベヌスでは、目次に入るこずができず、䞍䟿だったため、新しいバヌゞョンでは修正したした。



各䌁業は、スタむル、構造、および矎意識に関する独自のビゞョンに埓っおAPIドキュメントを䜜成したす。さたざたな䌁業の4〜5個のパブリックAPIを開くず、間違いなく、構造、膚倧なコヌド䟋ず構文の匷調衚瀺、長いペヌゞなど、いく぀かの共通点を芋぀けるこずができたす。それでも、すべおの䟋には特別な機胜がありたす。たずえば、゚ンドポむントの説明のロヌカリれヌションはたれですが、゚ンドポむントの説明の構造はほずんどの堎合同じように芋えたす。



APIドキュメントを構成するためのいく぀かの掚奚事項



゚ンドポむントのグルヌプ化

各゚ンドポむントの情報を提䟛するこずに加えお、゚ンドポむントが倚数ある堎合は、それらをグルヌプ化するこずが望たしいです。゚ンドポむントの長い連続リストは、ナビゲヌションを困難にしたす。



メ゜ッドの個別の説明

GET / POSTメ゜ッドを同時に䜿甚する堎合は、1行に1぀のメ゜ッドのみを蚘述しおください。



぀たり、この堎合の最初の行はGETの説明であり、2番目の行はPOSTの説明であるため、混乱を避けるこずができたす。







倉曎の自動

化各セクションを手動で再フォヌマットせずに倉曎を簡玠化したす。この堎合、開発スペシャリストが構成したこのプロセスの自動化のおかげで、マヌクアップに觊れるこずなく、スワガヌファむルのテキストのみを翻蚳したす。



構文の匷調衚瀺

開発者はコヌド䟋を䞖界で最も愛しおいたす。䟋が倚すぎるず䞍満を蚀う開発者はいたせん。補品に没頭する時間を倧幅に短瞮したす。



プログラミング蚀語に応じおさたざたな芁玠に適切な色が付けられおいるず、コヌドの䞀郚を操䜜する方がはるかに䟿利です。



すぐに䜿甚できるコヌドの匷調衚瀺は暗い背景でのみ䜿甚可胜であったため、フロント゚ンド開発者は、highlight.jsを䜿甚しおこの゜リュヌションを䌁業スタむルに倉曎したした。



結論の代わりに



曎新されたナレッゞベヌスは3月から利甚可胜になり、APIドキュメントは8月の初めから利甚可胜になりたした。

「-私たちず䞀緒に、あなたが長い間走っおいるずき、あなたは確かに別の堎所にいるこずに気づきたす。

「たあ、ここでは、同じ堎所にずどたるには同じくらい速く走らなければならず、別の堎所に行くには2倍速く走る必芁がありたす。」




ルむス・キャロル「芋るガラス越しのアリス」
私たちがすでに行ったこずは、知識ベヌスを改善するためのもう1぀のステップです。他のサヌビスのAPIに新しい手順ずドキュメントを埐々に远加しおいきたす。



All Articles