web-dev-qa-db-ja.com

Pythonでフリーランスのプラットフォームを構築する場合、さらにどのようなプログラミング言語とスキルが必要ですか?

プログラミング言語、データベース、フレームワーク、ライブラリ、さまざまなAPIなど(まとめて「アイテム」と呼ばれます)の互換性と共和分について質問があります。フリーランスのプラットフォーム/マーケットプレイスを構築する際に使用する予定のアイテムのリストを追加しましたが、何かが足りないのか、または組み合わせを指定すると互換性の問題が発生する可能性があるのか​​を知りたいです。

言及された項目について調査を行いましたが、まだ明確でないもののリストがありますので、このトピックに関する詳細情報を入手できれば幸いです。申し訳ありませんが、用語やコードネームが苦手な場合、または正確な回答を得るための貴重なポイントが不足している場合は、説明が必要な場合は追加情報を追加します。質問に答えるのに役立つ基本的な情報は次のとおりです。

私たちは、以下を必要とするフリーランスのプラットフォームを構築しようとしています。
-高レベルのモジュール性とスケーラビリティ。
-自律的な開発。これは、半/完全に独立したタスクグループによって処理されます。
-多くのサードパーティAPIを統合/インポートする機能(つまり、Facebook接続)。
ベンチマークのためにoDeskを使用しましょう(したがって、少なくともそのような機能の可能性が必要です)。その一部は次のとおりです。
-ビジネスプロセス/ワークフロー(クライアント–フリーランサー接続、クライアント–コンサルタント接続など);
-ユーザーリストと詳細なプロファイリング(ポートフォリオ、完了したプロジェクトなど)。
-セマンティック検索;
-…(つまり、少なくとも現在存在するフリーランスプラットフォームの完全な機能)。

フリーランスのプラットフォームを構築する過程で使用されるアイテムのリストを作成しました。これは次のとおりです。

プログラミング言語(およびフレームワーク):PHP(Zend)vs。Python(Django)
決定基準:モジュール性(個々のモジュールの更新のしやすさ|既存のモジュールのライブラリ|新しいモジュールの作成のしやすさ)|高度なスキルを持つ労働力の利用可能性|開発時間|標準化(自律開発のしやすさ)。

結果は、PHP5.XではなくPython v2.X/v3.Xを選択しました。決定は決定基準の一部(Pythonの引数)に基づいていました:
ほとんどの場合、他のモジュールを変更することなく、特定のモジュールを更新/編集する可能性。
新しいモジュールを最初から作成するのに大きな手間はかかりません(または、少なくともphpでの同じ結果と比較して、より多くの時間やリソースを必要としません)。
python開発者のアプローチは、自律開発の機会を増やすようです(他の人がモジュール(またはモジュールのフラグメント)を個別に開発したり、引き継いだりできる方法で開発していますこの人が終了した時点から非常に簡単にタスクを実行できます(更新など)。
全体Pythonは、より長期志向のソリューションのようであり、短期的には大きな欠点はありません。

データベース:MySQL vs.…:
決定基準:機能|人気|初期費用|オーバーヘッド
MySQLはMsSQLよりも選択されました。これは、(無料バージョンで)十分な機能を備えているようであり、ライセンス料よりも帯域幅のオーバーヘッドの観点から経済的に意味がある場合は、エンタープライズバージョンにアップグレードできるためです。

ビジネスプロセス:ApacheODE対OracleBPEL対…:
決定ルール:python互換性|モジュール性|カスタマイズ|高度なスキルを持つ労働力の可用性
ここではまだ明確な決定はありません。現在の最有力候補はApacheODEのようですが、pythonライブラリのいずれかからモジュールを採用し、それらをカスタマイズして新しいものを作成することも、現時点では魅力的なオプションのようです。

フロントエンド:HTML4/HTML5 + CSS2/CSS3 + AJAX;
最初はWebベースのUIのみがあり、その後、デスクトップとモバイルのUIも含まれます。

プラットフォームを開発するために現在検討されている項目をリストしました。欠陥があると思われる場合、およびどちらに影響を与える可能性のあるより多くの、または異なる決定基準を検討する必要がある場合は、意思決定のポイントのいずれかを参照してください。選ぶアイテムなど.

その他の検討事項
1)フリーランスのプラットフォームの開発に使用されることを考慮して、アイテムの適切な組み合わせを選択しましたか。 (1.1)必要な項目(プログラミング言語/フレームワーク/プラットフォーム)が不足していますか? 2)Djangoフレームワークを使用して開発時間を節約することは合理的であり、スケーラビリティの大きな問題が発生する可能性があります。

(2.1)フリーランスプラットフォーム用に構築済みのモジュールをできるだけ多く取得するために使用することを検討する必要があるライブラリ。

3)BPEL(つまり、Apache ODEの使用)は、さまざまなビジネスプロセス(クライアントフリーランサー接続を含む)に採用できますが、提供できるソリューションに大きな制限が生じることはありません。 (3.1)必要な結果を達成するためにpythonで独自のモジュールを開発することを検討する方が良いでしょうか;(3.2)またはBPELをサポートするpythonライブラリがありますか? ;

4)phpライブラリの使用に関してpythonをphpに接続することは可能ですか(例: http://code.google.com/p/php-Excel/ =)Pythonで利用できない場合;(4.1)はいの場合、それに必要なモジュール/プラットフォーム/ソリューション;フィードバックが得られ次第、必要に応じてパーツを更新します。回答を探しています。ありがとうございます。

2
Aisbul

あなたはこれに多くのことを考えていますが、同時に、あなたは自分自身に狭い廊下しか許していません。

  1. もしあなたがPHP(そして私は本当にあなたがすべきだと言っているわけではない)を考えているなら、あなたmust考慮してください SymfonyFlowCakePHP および Codeigniter

  2. 「長期指向のソリューション」に本当に興味がある場合は、静的に型指定された言語を選択する必要があります。 Scala with Lift

  3. 静的型付けが気に入らない場合は、Ruby(Rails、Sinatra)、node.jsを追加する必要があります( Express )およびCommonLisp( weblocks

  4. SQLの代替案を検討する必要があります。非常にスケーラブルなドキュメントストア、キーバリューストア、グラフデータベースなどが多数あり、それらのほとんどは、設計されたユースケースで優れたパフォーマンスと柔軟性を提供します。 SQL(特にMySQL)がここに行くための最良の方法であることがわかるかもしれませんが、実際の選択肢から本当に選択したい場合は、もう少し調べる必要があります。

  5. ビジネスプロセス?本当に?この種のものが必要な場合と不要な場合がありますが、現時点ではこれは時期尚早です。今のところ、機能設計、UX設計、およびそれらすべてを信頼性の高い高速ソリューションに実装するための細部など、実際の問題に焦点を当てる必要があります。 ESBの要点は、サービスをそこに非常に簡単にプラグインできることです。競合他社が簡単に利用できるアーキテクチャを使用するだけでは、競合他社に勝る利点はありません。
    機能を反復し、クリーンで堅牢、テスト済み、柔軟なコードベースを持つことにエネルギーを注ぎます。乾いた技術文書のページを読んだり、構成XMLをひざまずいたりして無駄にしないでください。これはまた別の機会であり、プロジェクトが正しい方向に進んでいることがわかったら、そのために雇った人に委任するのがおそらく最善です。

2
back2dos