ダルタニャンとインターネット、またはリンク切れの問題に取り組む

写真1
紳士、それは量、購入/販売の文脈で排他的にリンクを考慮し、それらが置かれているPRサイトを考慮するのに十分です。 ロボットではなく、人々の世話をする時です。 インターネットでの作業は耐えられなくなりつつあります。 govnotextsを使用して自動生成されたサイトのファームが咲き乱れ、女性は私を許してくれます。 それらのために、普通の材料はもちろんのこと、技術資料さえ見つけることは不可能です。 しかし、正しいリンクがあれば、技術資料の検索についてはそれほど心配しません。 リンクはハエのように死に、1年前にフォーラムやブログで投稿を読んで、リンクをたどる希望はほとんどありません。

壊れたリンクは現代のインターネットの非常に大きな問題であると考えていますが、彼らはどういうわけか話したり考えたりしません。 少なくとも何かをする時だと思います。 すでに何かをしているので、それについてお話しします。 この例が誰かにインスピレーションを与え、彼がユーザーの世話をしたいと思うことを願っています。



インターネットには非常に多くの壊れたリンクが存在するため、たとえば何かを選択することさえできません。 誰もが何かに関する興味深い情報を読んだ後、彼は自信を持ってリンクをクリックし、どこにも行かなかったことに出会いました。 そして、最終的な目標は通常、デッドサイトではなく、非常に活発です。 そして非常に活発なので、外部リソースから来るユーザーをリダイレクトすることを心配することなく、常に修正します。 ただし、多くの場合、内部リソースからの移行は気にしません。 これの良い例は、MSDNの記事です。

誰かが材料がどこかに移動したという事実に何の問題もないことに反対するでしょう。 Googleで簡単に見つけることができます。 まず、可能であっても、膨大な時間がかかります。 そして、これは大きな問題です。 サイト管理者の気まぐれで移動された単一の、しかし有用なリソースは、数千人、場合によっては数百万人から時間がかかります。 それらのそれぞれは、必要な素材を検索し、リンクをたどる必要があります。

また、資料を見つけることが非常に困難な場合や、資料を必要とする人がそれを実行できない場合もあります。 「Googleに移動」が役に立たない場合、2つの例を示します。

最初の例。 Microsoft Visual Studioのプラグインをリリースするには、各バージョンがMicrosoft Webサイトで特別なキー(PLK)を受け取る必要があります。 数年間、このキーはmsdn.microsoft.com/en-us/vsx/cc655795.aspxページで発行されました(リンクは機能しません)。 数か月前、誰かが「vsx」のイデオロギーがイデオロギー的に正しくないと判断し、「vstudio」に名前が変更されたため、リンクが新しいhttp://msdn.microsoft.com/en-us/vstudio/cc655795.aspxになりました。 しかし、マイクロソフトのサイトを含め、どこでもリンクは古くて新しいものではありませんでした。 新しいリンクはどこにも掲載されていなかったため、Google検索でも古いリンクのみが返されました。 彼らはMicrosoftフォーラムで協力し、そこで新しいページを明確に示しました。 質問-リンクの変更について誰かが気分がよくなりましたか? 世界中で何人がこの質問の答えを探すことを余儀なくされましたか? リンクを本当に変更したい場合、リダイレクトを行うのは本当に困難でしたか?

そして、もう一つの、より感情的な例です。 そのような本「C#for schoolchildren」があります。これはマイクロソフトの支援を受けてリリースされ、12〜16歳の子供を対象としています。
写真2
個人的には、この年齢でC#を勉強するのが合理的かどうかはわかりませんが、この本は全体として非常に良い印象を与えます。 非常に面白い説明写真によると、非常に多くがあります。
写真3
そのような本を作成するために人々がどれだけの努力を払ったか想像してみてください。 誰かが学校にいる間に子供をC#に紹介するマイクロソフトの広告イニシアチブを思いついた人が本を書いて翻訳し、アーティストが図面を書き直して、テキストがロシア語で、おそらく他の言語でも書けるようにしました。 多くのお金と時間が費やされました。 そして、結果は何ですか? そして、私はそうではないと確信しています!

子供がMicrosoft Visual C#2008 Express Editionをダウンロードしてインストールする必要性について説明されているので、子供がさらに「パート1.最初の知人」になることを非常に疑います。 私は学生の能力に疑いの余地はありません。 彼らは何の助けもなしにStarcraft 2をダウンロードしてインストールし、さまざまなiPhoneで私をよりよく理解しています。 すべてがもっと平凡です。 存在しないアドレスからダウンロードすることをお勧めします。
写真4
移行結果:
写真5
そして、問題は、サイト上のデータを場所から場所へと思いがけずシフトすることにすべてが失敗する場合、なぜこの本を作成する必要があったのかということです。 これから13年の男子生徒が奇跡の獣「Microsoft Visual C#2008 Express Edition」のダウンロードを検索するためにグーグルに行くことは非常に疑わしい。 この章では90%の確率で、C#の学習は終了します。

はい、私はマイクロソフトを批判しているように見えるかもしれません。 いいえ、他のサイトでは改善されていません。そのような例だけが判明しています。

これらすべてからの私の結論は何ですか?


他の人(または自分)がリンク先のリソースのアドレスを取得して変更するため、すべての素材、ブログ投稿、サービス、書籍、または他のプロジェクトを台無しにするのは非常に簡単です。 その後、作成者の価値がゼロにならない場合、読者/ユーザーが目的のリンクを個別に検索するために時間と神経を費やす必要があるため、少なくともそれは大幅に低くなります。

この問題をどのように解決しますか?


私たちは技術記事を書き、多くの場合、さまざまなドキュメント、ツール、サードパーティのブログ投稿を参照します。 その結果、多くの場合、素材や記事をサードパーティのサイトに移動するという問題に直面します。 特に何らかの理由で、Microsoft、Intel、AMDなどの大企業のサイトは罪を犯します。 彼らはセクション全体を移動し、その結果、例えば、少なくとも1年は非常に基本的な仕事に転じたMicrosoft / Intelの従業員の記事で助けを求めます。 どのリンクをクリックしない-あなたはどこにも行かない。 多くのプログラマーが私の経験を理解していると思います。

私は多くの人がそれについて気にせず、どこへの移行もうまくいかないと確信しています。 実際には、インターネットには非常に多くのデッドリンクが存在するためです。 ただし、検索エンジン用ではなく、人々向けの記事を書いています。 そして、私はこれを誇りをもって宣言します。 まだ何百万人も稼いでいませんが、少なくともしばらくの間、自分をダルタニャンとして感じたいです。

ですから、私たちにとって重要なことは、記事が私たち自身のサイトの資料だけでなく、外部のサイトへの正しいリンクを含むことです。 したがって、どこにもつながるリンクを修正する必要があります。 このタスクは、他の多くのサイトに記事を公開しているという事実により複雑になっています。 そして、それらのリンクを編集するのは自然です。力はなく、時には技術的な能力もありません。

自然な解決策は、リダイレクトシステムを作成することです。 私たちにとってそれがどのように機能するかをお話しします。誰かが自分のために似たようなことをしたいと思うかもしれません。 誰かに興味を持ってもらいたいので、どこにも行かないことにうんざりしています!

システムは、短いリンクのペア(外部リソースへのリンク)を格納するデータベースで構成されています。 リンクを追加するためのユーザーインターフェイスは非常にシンプルで、下の図に示されています。
写真6
外部リソースにリンクを入力し、記事、ブログなどに挿入する短いリンクを取得します。 外部リソースのアドレスがすでにデータベースにある場合、以前に作成された短いリンクが返されます。
写真7
データベースにそのようなリンクがない場合、新しいペアが作成され、新しい短いリンクが生成されます。
写真8
技術的には、レコードはリンクテーブルのデータベースに格納され、次のフィールドのセットです。

[生成]ボタンをクリックすると、追加するリンクのアドレスを含むリクエストがviva64.comに送信されます。 リクエストを処理するスクリプトは次のようになります。
  $ sql = "select * from link where link = '"。$ add_url。 "'";
 $ link = mysql_query($ sql);
 if(mysql_num_rows($ link)){
     $ row = mysql_fetch_array($ link、MYSQL_ASSOC);
     $ new_url = "http://www.viva64.com/qwerty.php?url=".$row['num '];
 }
その他{
     $ sql = "select * from link order by num desc";
     $ link = mysql_query($ sql);
     $ row = mysql_fetch_array($ link、MYSQL_ASSOC);
     $ last_num = $ row ['num'] + 1;
     $ sql = "リンク(数値、リンク)値に挿入
            ( "。$ last_num。"、 '"。$ add_url。"') ";
     $ link = mysql_query($ sql);
     $ new_url = "http://www.viva64.com/qwerty.php?url=".$last_num;
 } 

スクリプトは、$ add_url変数のこのアドレスを受け取り、そのアドレスがデータベース内にあるかどうかを確認します。
  $ sql = "select * from link where link = '"。$ add_url。 "'";
 $ link = mysql_query($ sql); 

存在する場合、データベースから受け取ったアドレスの識別子を使用してリダイレクトスクリプトを呼び出すリンクが、単に$ new_url変数に書き込まれます。
  if(mysql_num_rows($ link)){
     $ row = mysql_fetch_array($ link、MYSQL_ASSOC);
     $ new_url = "http://www.viva64.com/qwerty.php?url=".$row['num '];
 } 

アドレスが見つからない場合、リンクテーブルに含まれるアドレスの最大一意識別子が計算され、最大識別子がインクリメントされた新しいレコードがデータベースに追加されます。その後、新しいスクリプトの値がリダイレクトスクリプトを呼び出す$ new_url変数に書き込まれます。
 その他{
     $ sql = "select * from link order by num desc";
     $ link = mysql_query($ sql);
     $ row = mysql_fetch_array($ link、MYSQL_ASSOC);
     $ last_num = $ row ['num'] + 1;
     $ sql = "リンク(数値、リンク)値に挿入
              ( "。$ last_num。"、 '"。$ add_url。"') ";
     $ link = mysql_query($ sql);
     $ new_url = "http://www.viva64.com/qwerty.php?url=".$last_num;
 } 

その後、新しいアドレスがデータベースに追加されたか、既存のアドレスの1つだけが受信されたかに関係なく、ユーザーはリダイレクトリンクを受信します

リダイレクトメカニズム


viva64.comのリダイレクトスクリプトは複雑ではありません。 実際、彼がしているのは、リンク番号をパラメーターとして受け取り、その番号のリンクをデータベースから取得して、リンクをリダイレクトすることだけです。 コードでは、次のようになります。
  $ s = substr($ HTTP_GET_VARS ['url']、0、15);
 $ u = "http://www.viva64.com/";
 $ isConnect = mysql_connect($ sqlserver、$ sqluser、$ sqlpassword);
 if($ isConnect){
     $ isSelectDatabase = mysql_select_db($データベース);
     if($ isSelectDatabase){
          $ currentLink = $ s;
          $ sql = "SELECT * FROMリンクWHERE num = '"。$ currentLink。 "'";
          $ link = mysql_query($ sql);
          if($ link && mysql_num_rows($ link)){
            $ row = mysql_fetch_array($ link、MYSQL_ASSOC);
            $ u = $ row ['link'];
          }
 }
 }
 print Header( 'Location:'。$ u); 


壊れたリンクを見つけて修正する


壊れたリンクを見つけるタスクは、 Fast Link Checkerプログラムによって解決されます。 プログラムは、サイトのすべてのページをクロールし、見つかったすべてのリンクをたどろうとします。 次に、結果がフィルターに掛けられ、所定の電子メールアドレスに、壊れたリンクのリストを含む電子メールが送信されます。 プログラムの起動は自動化され、週に1回、リンクの状態がチェックされます。

壊れたリンクを手動で決定した後、リンクが指す資料が検索されます。 通常、資料が利用可能な新しい住所を簡単に判別できます。 Microsoft、Intel、AMDなどのサイトでは、素材を別のセクションに移動するのが大好きです。

このリソースまたはほとんど同一のリソースを見つけることが不可能な場合(非常にまれですが)、リンクはサイトの記事から削除されます。 外部サイトでは、記事のリンクはどこにも指し示しませんが、ここでは何もできません。 一部の資料/サイトが消えると、その後消えます。

新しいリンクが定義されると、データベースに入力されるため、リンクはサイト上のすべての記事で再び機​​能します。

管理者のインターフェースを介してリンクを変更するには、フォームのクエリ
  「リンク」セットの更新
  'link' = 'http://msdn.microsoft.com/en-us/isv/bb190527.aspx' 
どこ 
  「リンク」。numn = 341 LIMIT 1; 

システムの動作について詳しく説明していませんでしたが、正直なところ、ユーザーは開発者ではなくシステムです。 しかし、読者から関心があれば、私の同僚のアントン・デュブロビンがすべてをより詳細に説明し、質問に答えます。

インテルへの取り組み


私自身はインテルの従業員ではありませんが、会社の従業員の多くがこのブログを読んでいることを知っています。 イニシアチブを提供したいので、ここに書いています。 インテルは、学生がインターンシップを行うさまざまなプログラムやサマースクールを継続的に実施し、さまざまな興味深いタスクを実行していることを知っています。 Habrahabrの読者の1人が最新ではない場合、このテーマに関するリンクがいくつかあります: 1、2、3、4

タスクの1つとして、インテルのWebサイト上の既存のリンクを適切な状態に保つことができるシステムの実装を検討することを提案したいと思います。 残念ながら、Intelサイトのリンク切れはおそらくMicrosoftサイトのリンクよりも劣っていません。 小さな部分から始めることができます。 たとえば、ISNのロシア語部分(記事、フォーラム、ブログ)のサポートを検討してください。 この記事で説明したことは、1つの問題のみを解決する非常に狭いハックです。 また、誤ったリンクの問題には、より深刻な調査と作業が必要です。

少しでも世界を改善したいと思っている人々に感謝します。

Source: https://habr.com/ru/post/J101957/


All Articles