多くの人々は、彼らのシステムが彼らや彼らのチームのために行うことを持っています。ソース管理のコミット後フックは標準的な例です。最新のソースをチェックアウトし、コンパイル、テスト、パッケージ化する自動ビルドシステムがあります。これは、私たちのほとんどがおそらく使用するバックオフィスハックです。
他にどんなクールなことをしましたか?
多くの人々は、彼らのシステムが彼らや彼らのチームのために行うことを持っています。ソース管理のコミット後フックは標準的な例です。最新のソースをチェックアウトし、コンパイル、テスト、パッケージ化する自動ビルドシステムがあります。これは、私たちのほとんどがおそらく使用するバックオフィスハックです。
他にどんなクールなことをしましたか?
私たちのチームには、Subversionの競合の概念に精通していない開発者が1人いました。彼は、コード内の奇妙なものをすべて削除し、[解決]をクリックすると、すべてが正常であると推測しました(つまり、ファイル内の他のすべての変更をノックアウトします...)。
言うまでもなく、これが5回発生し、5回目に閉じたばかりの欠陥が再発した理由を説明しなければならなかった後、スクリプトを作成しました。
ファイルへの変更を比較して、連続チェックインによって以前のすべての変更が削除されたかどうか、およびそれらが名前のない開発者によって行われたかどうかを確認します。
次に、何が起こったか、およびチェックイン中に失われた作業量の説明を記載した電子メールを上司に送信します。
7回目の発生はありませんでした。
デイリービルドが成功したか、テストに失敗したか、単にビルドしなかったかを示す信号があります。
また、お客様からアップロードを受信するたびに数秒間点灯するライトバーがあります。
スタッフは 24 時間 365 日体制ではありませんが、重要なプロセスを一晩中実行しています。重大なシステムの問題やミッション クリティカルなプロセスの失敗などを通知する社内アラート システムを作成しました。テキスト読み上げを使用して説明的なメッセージを作成し、自動ダイヤラーに接続して適切な担当者に電話をかけます。メッセージ。
ソース管理を信じていない従来の ASP サイトに取り組んでいる開発者がいました。コードは彼のマシンから生産ボックスに直接送られました。これにより、変更が失われたり、安定したバージョンに戻せなくなったりする問題が発生します。CruiseControl.Net にはディレクトリを監視する機能があるため、ファイルが運用環境にコピーされるたびに実際にファイルをチェックインするプロジェクトを追加しました。CC.Net の当初の意図から完全に後退しましたが、コードを失うことはありませんでした。
正確にはハックではありませんが、IT 開発作業に欠かせないものがいくつかあります。
Subversion を使用している場合は、CommitMonitor を使用する必要があります。( http://tools.tortoisesvn.net/CommitMonitor ) 新しいコミットの svn リポジトリを監視し、新しいコミットを確認できます。チームが何をしているかを把握したい場合に最適です。特に、監視する必要があるジュニアが数人いる場合. ;)
Rsnapshot ( http://www.rsnapshot.org/ ) も非常に貴重です。ファイルシステム全体の完全なバックアップ スナップショットを 2 年前から 4 時間ごとに作成しており、それ以降は毎日作成しています。ファイルシステムのデータ キューブのようなものです。これがもたらす心の安らぎは、純粋な至福です。:)
ほとんどハックではありませんが、昔は高速の VAX 11/730 で、何か問題が発生した場合、夜通しのプロセスでプリンターにファイル "BLAMMO.TXT" を印刷していました。毎朝、出社して最初に立ち寄るのはプリンター。
約 9 年前のドットコムの時代にさかのぼると、私は 2 つの異なる場所の間でフェイルオーバー システムをハッキングする必要がありました。私たちは、powerbuilder フロントエンド Web サイトと powerbuilder 管理ツールを備えたファンキーなセットアップを行いました。データは MSSQL 7.0 に保存されました。Web サーバーは IPX を使用して SQL Server と通信しました (聞かないでください)。とにかく、私はフェイルオーバー計画を立てる責任がありました。
最終的に、いくつかの Linux ボックスを一緒にハッキングして、それらに外部 DNS を実行させました。各場所に 1 つずつ。私たちは、WebサーバーとSQLサーバーを備えたリモートサイトを持っていました.128k ISDN IPX接続(すべてのもの)でSQLトランザクションレプリケーションが機能しました。次に、本番サイトで監視ツールを構築して、さまざまなアップストリーム ネットワーク ハンドオフにパケットを送信しました。プライマリ サイトで 20% 以上の停止が発生した場合、監視ツールは Debian ボックスで perl スクリプトを実行して DNS を変更し、2 番目のサイトをポイントしました。セカンダリには、プライマリ DNS とモニタリング ステーションでハートビートがありました。両方の接続が失われない限り、レコードを複製し、DNS をバックアップ場所にポイントするようにロールオーバーします。
プライマリ サイトは、レプリケーションを中断するために、プライマリ サイトで SQL サーバーをシャットダウンします。128k ISDN IPX 接続を使用したサイト間の自動フェイルオーバー:)
コミットメッセージ、ビルドからの通知、ユニットテストの失敗、デプロイ、バグ追跡アクティビティなど、プロジェクトに関連するあらゆる種類のイベントをツイートする多くのプロジェクトのTwitterアカウントがあります。Twitter Gwibber(新しいステータスごとにポップアップを表示する)のようなクライアントを実行することは、関心のあるプロジェクトのアクティビティと連絡を取り合うための優れた方法です。Twitterを使用すると、iPhoneクライアントなどのすべてのサードパーティアプリを利用できるので便利です。
テクスチャ/画像への絶対パスを持つ VRML/3d モデル ファイルのコミット フック チェックを追加します。f:/maya/my-textures/newproject/xxxx.png
サーバーに属していないだけです。
以前の仕事では、データの変更 (挿入、更新、削除) について多くのテーブルを監査する必要がありました。サポート担当者は、ユーザーが行った変更を見つけるために、このデータを検索できる必要がありました。
半永久的になった一時的な解決策は、非選択クエリをそれぞれ保存することでした。ただし、これは大規模なシステムであり、テーブルは 1 日に約 1.5 GB 増加します。
私が思いついた解決策は、外部リスト内のすべてのテーブルに対して、各テーブル、行、列、前後、いつ、誰によって監査し、それを新しい監査テーブルに格納する適切なトリガーを作成するスクリプトを作成することでした。このテーブルは、古いバージョンよりもサイズが約 10% 大きくなり、より多くの使用可能なデータが格納されました。これにより、サポート チームやビジネス ユーザーが SQL の知識を必要とせずに、データに加えられたすべての変更を検索および表示するための UI を作成できるようになりました。