カテゴリ: プログラミング

APIとは何ですか?アプリケーションプログラミングインターフェイスの説明

APIは、アプリケーションプログラミングインターフェイスの略で、コマンドラインツールからエンタープライズJavaコード、Ruby on RailsWebアプリまであらゆる場所に適用される概念です。APIは、個別のソフトウェアコンポーネントまたはリソースとプログラムで対話する方法です。 コードのすべての行を最初から作成しない限り、それぞれが独自のAPIを持つ外部ソフトウェアコンポーネントと対話することになります。完全にゼロから何かを作成する場合でも、適切に設計されたソフトウェアアプリケーションには、コードを整理してコンポーネントをより再利用しやすくするための内部APIがあります。また、Web上の他の場所で開発された機能を利用できるようにする多数のパブリックAPIがあります。 APIとは何ですか? APIは、ソフトウェアコンポーネントとの可能な相互作用の仕様として定義されます。正確にはどういう意味ですか?さて、車がソフトウェアコンポーネントだったと想像してみてください。そのAPIには、加速、ブレーキ、ラジオのオンなど、何ができるかについての情報が含まれます。また、それらのことを実行させる方法についての情報も含まれます。たとえば、加速するには、アクセルペダルに足を乗せて押します。 APIは、アクセラレータに足を置いたときにエンジン内で何が起こるかを説明する必要はありません。そのため、

続きを読む

C#で抽象クラスとインターフェイスを使用する場合

アプリケーションを設計するときは、抽象クラスをいつ使用するか、そしていつインターフェースを使用するかを知ることが重要です。抽象クラスとインターフェースはいくつかの点で類似しているように見えますが、達成しようとしていることに最適な選択を決定する重要な違いがあります。このブログ投稿では、これらの違いと、どちらをいつ使用するかを決定する方法について説明します。 簡単な答え:抽象クラスを使用すると、サブクラスが実装またはオーバーライドできる機能を作成できます。インターフェイスでは、機能を定義することのみが可能であり、実装することはできません。また、クラスは1つの抽象クラスしか拡張できませんが、複数のインターフェイスを利用できます。  C#抽象クラスの説明 抽象クラスは、インスタンス化できない特殊なタイプのクラスです。抽象クラスは、そのメソッドを実装またはオーバーライドするサブクラスによって継承されるように設計されています。言い換えると、抽象クラスは部分的に実装されているか、まったく実装されていません。抽象クラスに機能を持たせることができます—抽象クラスのメソッドは抽象と具象の両方にすることができます。抽象クラスはコンストラクターを持つことができます—これは抽象クラスとインターフェースの大きな違いの1つです。抽象クラスを利用してコンポーネントを設計し、派生クラスによって実装する必

続きを読む

CI / CDとは何ですか?継続的インテグレーションと継続的デリバリーの説明

継続的インテグレーション(CI)と継続的デリバリー(CD)は、アプリケーション開発チームがコード変更をより頻繁かつ確実に提供できるようにする文化、一連の運用原則、およびプラクティスのコレクションを具体化します。この実装は、CI / CDパイプラインとも呼ばれます。  CI / CDは、DevOpsチームが実装するためのベストプラクティスの1つです。また、展開手順が自動化されているため、ソフトウェア開発チームがビジネス要件、コード品質、およびセキュリティを満たすことに集中できるため、アジャイル手法のベストプラクティスでもあります。 CI / CDが定義されています 継続的インテグレーション は、開発チームが小さな変更を実装し、コードをバージョン管理リポジトリに頻繁にチェックインするように促すコーディング哲学と一連のプラクティスです。最新のアプリケーションのほとんどは、さまざまなプラットフォームやツールでコードを開発する必要があるため、チームはその変更を統合して検証するメカニズムを必要としています。 CIの技術的な目標は、アプリケーションを構築、パッケージ化、およびテストするための一貫した自動化された方法を確立することです。統合プロセスに一貫性があると、チームはコード変更をより頻繁にコミットする可能性が高くなり、コラボレーションとソフトウェアの品質が向上します。

続きを読む

アジャイル手法とは何ですか?現代のソフトウェア開発は説明しました

今日のすべてのテクノロジー組織は、ソフトウェア開発またはそのバージョンのアジャイル手法を実践しているようです。または、少なくとも彼らはそう信じています。アジャイルアプリケーション開発に不慣れな場合でも、ウォーターフォールソフトウェア開発手法を使用して数十年前にソフトウェア開発を学んだ場合でも、今日の作業は少なくともアジャイル手法の影響を受けます。 しかし、アジャイル手法とは何であり、ソフトウェア開発でどのように実践すべきでしょうか?アジャイル開発は実際のウォーターフォールとどのように異なりますか?アジャイルソフトウェア開発ライフサイクル、またはアジャイルSDLCとは何ですか?そして、スクラムアジャイルとかんばんや他のアジャイルモデルとは何ですか?  アジャイルは、17人の技術者がアジャイルマニフェストを起草した2001年に正式に発足しました。彼らは、より優れたソフトウェアを開発することを目的として、アジャイルプロジェクト管理の4つの主要な原則を作成しました。 プロセスとツールを介した個人と相互作用 包括的なドキュメントを介した作業ソフトウェア 契約交渉をめぐる顧客のコラボレーション 計画に従った切り替えへの対応 アジャイルの前:ウォーターフォール手法の時代 私のような古い手は、ウォーターフォール手法がソフトウェア開発のゴールドスタンダードであった時代を

続きを読む

AdobeFlashがサポート終了になりました

アドビのかつてユビキタスだったFlashPlayerは、インターネット上でリッチメディアコンテンツを表示するためのブラウザベースのランタイムであり、中国本土以外のすべての地域でこのテクノロジーの最終的なリリースを予定しており、道の終わりに達しました。 最終リリースは12月8日に行われました。Adobeは今月以降、FlashPlayerをサポートしなくなります。Flashコンテンツは、2021年1月12日以降、FlashPlayerでの実行がブロックされます。  アドビは、システムを保護するために、FlashPlayerをすぐにアンインストールすることをすべてのユーザーに推奨しています。リリースノートでは、アドビは、過去20年間にテクノロジーを使用し、それを活用してコンテンツを作成してくれた顧客と開発者に感謝しました。使用済みの一般情報ページが掲載されました。 アドビは2017年7月に、今年の終わりにFlashPlayerを廃止すると発表しました。Flashテクノロジーは、HTML5などの標準ベースのテクノロジーが勢いを増し始めた時代に、プロプライエタリテクノロジーとしての認識に屈しました。アドビは、現在実行可能な代替手段としてWebGLとWebAssemblyを引用しました。 AppleがiPhoneおよびiPadモバイルデバイスでFlashをサポートしないことを拒否

続きを読む

PaaSとは何ですか?Platform-as-a-Serviceの説明

Platform-as-a-Service(PaaS)は、サービスプロバイダーがクライアントにプラットフォームを提供し、ソフトウェアなどのインフラストラクチャを構築および保守することなくビジネスアプリケーションを開発、実行、および管理できるようにするクラウドコンピューティング製品の一種です。通常、開発プロセスには必要です。 PaaSアーキテクチャは、基盤となるインフラストラクチャを開発者や他のユーザーの目に触れないようにするため、モデルはサーバーレスコンピューティングとサービスとしての機能(FaaS)の概念に似ており、クラウドサービスプロバイダーがサーバーをプロビジョニングして実行し、リソースの割り当てを管理します。  FaaSは、企業がアプリケーションの開発と起動に通常必要なインフラストラクチャの構築と保守を複雑にすることなく、個別のイベント駆動型機能を開発および実行できるようにするサーバーレスオファリングの一種です。 PaaSおよびサーバーレスコンピューティングサービスは通常、消費されたコンピューティング、ストレージ、およびネットワークリソースに対してのみ課金されます。FaaSはそのアプローチを極端に採用し、機能が実行されたときにのみ課金するため、FaaSは断続的なタスクに自然に選択されます。  クラウドファミリーのすべて IaaS(Infrastru

続きを読む

クラウドコンピューティングとは何ですか?あなたが今知る必要があるすべて

クラウドコンピューティングには2つの意味があります。最も一般的なのは、「パブリッククラウド」モデルとも呼ばれる、商用プロバイダーのデータセンターでインターネットを介してリモートでワークロードを実行することです。アマゾンウェブサービス(AWS)、SalesforceのCRMシステム、Microsoft Azureなどの人気のあるパブリッククラウド製品はすべて、このおなじみのクラウドコンピューティングの概念を例示しています。今日、ほとんどの企業はマルチクラウドアプローチを採用しています。つまり、複数のパブリッククラウドサービスを使用しているだけです。 クラウドコンピューティングの2番目の意味は、クラウドコンピューティングの仕組みを説明しています。つまり、生のコンピューティング能力からアプリケーション機能まで、オンデマンドで利用できる仮想化されたリソースのプールです。顧客がクラウドサービスを調達する場合、プロバイダーは手動プロビジョニングではなく高度な自動化を使用してそれらの要求を満たします。主な利点は俊敏性です。抽象化されたコンピューティング、ストレージ、およびネットワークリソースを必要に応じてワークロードに適用し、豊富な構築済みサービスを利用できることです。 パブリッククラウドにより、顧客は新しいハードウェアやソフトウェアに投資することなく、新しい機能を利用できます。代わりに、クラウ

続きを読む

SaaSとは何ですか?サービスとしてのソフトウェアの定義

クラウドコンピューティングの最も一般的な形式の1つは、Software-as-a-Service(SaaS)です。簡単なSaaSの定義は次のとおりです。サービスプロバイダーが顧客向けのアプリケーションをホストし、インターネットを介してこれらの顧客が利用できるようにするソフトウェア配布モデルです。 SaaSは、Infrastructure-as-a-Service(IaaS)およびPlatform-as-a-Service(PaaS)とともに、クラウドサービスの3つの主要なカテゴリの1つです。 SaaSの例 アクセスが容易なため、ソフトウェア配信のSaaSモデルは、多くの種類のビジネスアプリケーションで一般的になり、多くのエンタープライズソフトウェアベンダーの配信戦略に組み込まれています。 SaaS企業は、電子メールとコラボレーション、顧客関係管理(CRM)、請求/給与処理、販売管理、人事管理、財務管理、データベース管理、エンタープライズリソースプランニング(ERP)、コンテンツなど、さまざまなビジネスアプリケーションに利用できる製品を提供しています。管理、およびドキュメントの編集と管理。 他のクラウドサービスと同様に、組織は通常、月額または年額で、サブスクリプション料金を通じてSaaSアプリケーションの料金を支払います。これは、前払い費用とオプションの継続的なサポート料金を伴

続きを読む

SQLとは何ですか?データ分析の共通語

現在、構造化照会言語は、リレーショナルデータベース内のデータを操作および照会するための標準的な手段ですが、製品間に独自の拡張機能があります。SQLの容易さと遍在性により、多くの「NoSQL」またはHadoopなどの非リレーショナルデータストアの作成者は、SQLのサブセットを採用したり、独自のSQLのようなクエリ言語を考案したりしています。 しかし、SQLは必ずしもリレーショナルデータベースの「ユニバーサル」言語ではありませんでした。当初(1980年頃)から、SQLはそれに対して特定のストライキを行っていました。私を含む当時の多くの研究者や開発者は、SQLのオーバーヘッドにより、SQLが本番データベースで実用的でなくなると考えていました。 明らかに、私たちは間違っていました。しかし、多くの人は、SQLの使いやすさとアクセシビリティのすべてのために、実行時のパフォーマンスに課せられる価格が高すぎることが多いと信じています。 SQL履歴 SQLが登場する前は、データベースにはタイトなナビゲーションプログラミングインターフェイスがあり、通常はCODASYLデータモデルと呼ばれるネットワークスキーマを中心に設計されていました。CODASYL(データシステム言語委員会)は、COBOLプログラミング言語(1959年から)とデータベース言語拡張(10年後から)を担当するコンソーシアムでした。

続きを読む

JavaIDEの選択

更新日:2018年12月。 すべてのJava開発者は、Javaの記述や、クラスライブラリとフレームワークの使用の厄介な部分を支援できるプログラミングエディタまたはIDEを必要としています。どのエディターまたはIDEが最適かは、開発中のプロジェクトの性質、組織での役割、開発チームが使用するプロセス、プログラマーとしてのレベルとスキルなど、いくつかの要因によって決まります。追加の考慮事項は、チームがツールを標準化したかどうか、および個人的な好みです。 サーバーサイドJava開発で最も頻繁に選択される3つのIDEは、IntelliJ IDEA、Eclipse、およびNetBeansです。ただし、これらだけが選択肢ではありません。このレビューには、いくつかの軽量IDEも含まれます。 このまとめでは、IntelliJ IDEA Ultimate 2018.3、JavaEE開発者向けのEclipseIDE 2018‑09、およびMac上のApache NetBeans(インキュベーション)IDE9の新規インストールを行いました。また、同じプロジェクトですべてのIDEをテストできるように、いくつかのオープンソースJavaプロジェクトをチェックアウトしました。 このアップデートについて このIDEレビューは、2016年9月に最初に公開され、2018年12月に更新されました。その間に、Java

続きを読む

JSONとは何ですか?データ交換のためのより良いフォーマット

JavaScript Object Notationは、キーと値のペアと順序付きリストに基づく構造化データのスキーマレスのテキストベースの表現です。JSONはJavaScriptから派生していますが、ネイティブで、またはほとんどの主要なプログラミング言語のライブラリを介してサポートされています。JSONは、WebクライアントとWebサーバー間で情報を交換するために一般的に使用されますが、これに限定されません。  過去15年間で、JSONはWeb上で広く普及しています。今日では、ほとんどすべての公開されているWebサービスで選択されている形式であり、プライベートWebサービスでも頻繁に使用されています。 JSONの人気により、多くのデータベースでネイティブJSONがサポートされるようになりました。PostgreSQLやMySQLなどのリレーショナルデータベースには、JSONデータの保存とクエリのネイティブサポートが付属しています。MongoDBやNeo4jなどのNoSQLデータベースもJSONをサポートしていますが、MongoDBはわずかに変更されたバイナリバージョンのJSONをバックグラウンドで使用しています。 この記事では、JSONを簡単に見て、JSONがどこから来たのか、XMLに対する利点、欠点、いつ使用すべきか、いつ代替案を検討すべきかについて説明します。しかし、

続きを読む

レビュー:6つの最高のJavaScript IDE

今日、JavaScriptはさまざまな種類のアプリケーションに使用されています。ほとんどの場合、JavaScriptはHTML5およびCSSと連携して、Webフロントエンドを構築します。しかし、JavaScriptはモバイルアプリケーションの構築にも役立ち、Node.jsサーバーの形でバックエンドに重要な場所を見つけました。幸いなことに、JavaScript開発ツール(エディターとIDEの両方)は、新しい課題に対応するために台頭しています。 エディターの代わりにIDEを使用するのはなぜですか?主な理由は、IDEがコードをデバッグし、場合によってはプロファイリングできることです。IDEはALMシステムもサポートし

続きを読む

レビュー:10の最高のJavaScriptエディター

JavaScriptプログラマーには、選択できる優れたツールがたくさんあります。ほとんどの場合、追跡するには多すぎます。この記事では、JavaScript、HTML5、CSSを使用した開発、およびMarkdownを使用したドキュメント化を適切にサポートする1​​0個のテキストエディターについて説明します。IDEの代わりにJavaScriptプログラミング用のエディターを使用するのはなぜですか?一言で言えば:スピード。 エディタとIDEの本質的な違いは、IDEがコードをデバッグし、場合によってはプロファイリングできることと、IDEがアプリケーションライフサイクル管理(ALM)システムをサポートしていることです。ここで説明するエディターの多くは、少なくとも1つのバージョン管理システム(多くの場合Git)をサポートしているため、基準はIDEとエディターの差別化要因ではありません。 SublimeTextとVisualStudio Codeは、JavaScriptエディターの中でもトップクラスです。SublimeTextは、便利な編集機能と同じくらいの速度であり、Visual Studio Codeは、さらに優れた機能とほぼ同じ速度です。ブラケットは3位になります。TextMateは数年前に私のリストで上位にランクされましたが、その機能は実際には新しい開発に追いついていないのです。 ほと

続きを読む

Rのmerge、dplyr、またはdata.tableを使用してRのデータをマージする方法

Rには、共通の列でデータフレームを結合するためのすばやくエレガントな方法がいくつかあります。そのうちの3つをお見せしたいと思います。 ベースRのmerge()関数、 dplyrの関数ファミリーに参加し、 data.tableの角かっこ構文。 データを取得してインポートする この例では、お気に入りのデモデータセットの1つである米国運輸統計局のフライト遅延時間を使用します。フォローする場合は、// bit.ly/USFlightDelaysにアクセスし、Flight Date、Reporting_Airline、Origin、Destination、DepartureDelayMinutesの各列を使用して選択した時間枠のデータをダウンロードします。また、Reporting_Airlineのルックアップテーブルを取得します。 または、これら2つのデータセットに加えて、1つのファイルにある私のRコードと、さまざまなタイプのデータマージを説明するPowerPointをここからダウンロードします。Rでデータをマージする方法については、コード、データ、およびPowerPointをダウンロードしてください。記事に付随するいくつかのデータファイル、PowerPoi

続きを読む

Javaは参照渡しですか、それとも値渡しですか?

多くのプログラミング言語では、参照または値によってパラメーターを渡すことができます。Javaでは、値でのみパラメータを渡すことができます。これにはいくつかの制限があり、疑問も生じます。たとえば、メソッドでパラメータ値が変更された場合、メソッド実行後の値はどうなりますか?また、Javaがメモリヒープ内のオブジェクト値をどのように管理するのか不思議に思うかもしれません。このJavaチャレンジャーは、Javaのオブジェクト参照に関するこれらの質問やその他の一般的な質問を解決するのに役立ちます。 ソースコードを入手する このJavaチャレンジャーのコードを入手してください。例に従いながら、独自のテストを実行できます。 オブジェクト参照は値で渡されます Javaのすべてのオブジェクト参照は、値によって渡されます。これは、値のコピーがメソッドに渡されることを意味します。ただし、コツは、値のコピーを渡すと、オブジェクトの実際の値も変更されることです。理由を理解するには、次の例から始めます。 public class ObjectReferenceExample { public static void main(String... doYourBest) { Simpson simpson = new Simpson(); transformIntoHomer(simpson); Syst

続きを読む

JPAとは何ですか?Java PersistenceAPIの概要

仕様として、れるJava Persistence APIは、と懸念している永続緩くJavaオブジェクトは、それらを作成したアプリケーション・プロセスよりも長生きたことにより、任意のメカニズムを意味し、。すべてのJavaオブジェクトを永続化する必要はありませんが、ほとんどのアプリケーションは主要なビジネスオブジェクトを永続化します。JPA仕様では、ユーザーが定義することができますどのオブジェクトを永続化する必要がある、とどのようにそれらのオブジェクトは、Javaアプリケーションで永続化する必要があります。 JPA自体は、ツールやフレームワークではありません。むしろ、任意のツールまたはフレームワークで実装できる一連の概念を定義します。JPAのオブジェクトリレーショナルマッピング(ORM)モデルは、もともとHibernateに基づいていましたが、その後進化してきました。同様に、JPAはもともとリレーショナル/ SQLデータベースでの使用を目的としていましたが、一部のJPA実装はNoSQLデータストアで使用するために拡張されました。NoSQLでJPAをサポートする一般的なフレームワークは、JPA2.2のリファレンス実装であるEclipseLinkです。 JakartaEEのJPA2.2 Java Persistence APIは、Java EE5のEJB3.0仕様(JSR 220)のサブ

続きを読む

JVMとは何ですか?Java仮想マシンの紹介

Java仮想マシンは、他のプログラムを実行することを目的としたプログラムです。これは単純なアイデアであり、カンフーのコーディングの最大の例の1つでもあります。JVMは当時の現状を混乱させ、今日もプログラミングの革新をサポートし続けています。 JVMの用途 JVMには2つの主要な機能があります。Javaプログラムを任意のデバイスまたはオペレーティングシステムで実行できるようにすること(「1回書き込み、どこでも実行」の原則として知られています)と、プログラムメモリの管理と最適化です。Javaが1995年にリリースされたとき、すべてのコンピュータプログラムは特定のオペレーティングシステムに書き込まれ、プログラムメモリはソフトウェア開発者によって管理されていました。したがって、JVMは啓示でした。 JavaWorld / JVMの技術的な定義があると便利です。また、ソフトウェア開発者がそれについて考える日常的な方法もあります。それらを分解しましょう: 技術的な定義:JVMは、コードを実行し、そのコードのランタイム環境を提供するソフトウェアプログラムの仕様です。 日常の定義:JVMは、Javaプログラムを実行する方法です。JVMの設定を構成し、実行中にプログラムリソースを管理するためにJVMに依存します。 開発者がJVMについて話すとき、私たちは通常、Javaアプリのリソ

続きを読む

CUDAとは何ですか?GPUの並列プログラミング

CUDAは、独自のGPU(グラフィックスプロセッシングユニット)での一般的なコンピューティングのためにNvidiaによって開発された並列コンピューティングプラットフォームおよびプログラミングモデルです。CUDAを使用すると、開発者は、計算の並列化可能な部分にGPUの能力を利用することで、計算集約型のアプリケーションを高速化できます。 OpenCLなどの他のGPU用APIが提案されており、AMDなどの他の企業から競合するGPUがありますが、CUDAとNvidia GPUの組み合わせは、ディープラーニングを含むいくつかのアプリケーション領域を支配し、いくつかの基盤となっています。世界最速のコンピューター。 グラフィックカードは、ほぼ間違いなくPCと同じくらい古いものです。つまり、1981年のIBMモノクロディスプレイアダプタをグラフィックカードと見なす場合です。1988年までに、ATI(最終的にAMDに買収された会社)から16ビットの2D VGAWonderカードを入手できるようになりました。1996年までに、3dfx Interactiveから3Dグラフィックアクセラレータを購入して、一人称シューティングゲームのQuakeをフルスピードで実行できるようになりました。 また、1996年にNvidiaは弱い製品で3Dアクセラレータ市場で競争しようとし始めましたが、それが進むにつれて学び

続きを読む

JSPとは何ですか?JavaServerPagesの概要

JavaServer Pages(JSP)は、JavaWebアプリケーション用の動的なデータ駆動型ページを作成できるようにするJava標準テクノロジです。JSPは、Javaサーブレット仕様に基づいて構築されています。2つのテクノロジーは通常、特に古いJavaWebアプリケーションで連携して機能します。コーディングの観点から見ると、両者の最も明らかな違いは、サーブレットではJavaコードを記述してから、クライアント側のマークアップ(HTMLなど)をそのコードに埋め込むのに対し、JSPではクライアント側のスクリプトまたはマークアップから始めてから埋め込むことです。ページをJavaバックエンドに接続するためのJSPタグ。 JSPは、MVC(model-view-controller)Webアプリケーションを構築するためのJava仕様であるJSF(JavaServer Faces)とも密接に関連しています。 JSPは、Eclipse Mojarra、MyFaces、PrimeFacesなどのJavaWebフレームワークの標準であるJSFよりも比較的単純で古いテクノロジーです。古いJSFアプリケーションのフロントエンドとしてJSPが使用されることは珍しくありませんが、Faceletsは最新のJSF実装に推奨されるビューテクノロジです。 JSPは、動的Webページを構築するための最初の選択肢で

続きを読む

ジェンキンスとは何ですか?CIサーバーの説明

Jenkinsは、パイプラインを使用して、言語とソースコードリポジトリのほぼすべての組み合わせに対して継続的インテグレーションまたは継続的デリバリー(CI / CD)環境をセットアップする簡単な方法を提供し、他のルーチン開発タスクを自動化します。Jenkinsは、個々のステップのスクリプトを作成する必要性を排除しませんが、ビルド、テスト、およびデプロイメントツールのチェーン全体を簡単にビルドするよりも高速で堅牢な方法で統合できます。 「ナイトリービルドを壊さないでください!」は、テスターのために毎朝新しく作成された毎日の製品バージョンを投稿するソフトウェア開発ショップの基本的なルールです。Jenkinsの前は、ナイトリービルドの中断を回避するために開発者ができる最善のことは、コードをコミットする前に、ローカルマシンで慎重かつ正常にビルドしてテストすることでした。しかし、それは、他の人の毎日のコミットなしに、自分の変更を単独でテストすることを意味しました。ナイトリービルドが自分のコミットを生き残るという確固たる保証はありませんでした。 Jenkins –元々はHudson –は、この制限に対する直接の対応でした。 ハドソンとジェンキンス 2004年、川口耕介はSunのJava開発者でした。川口は開発作業でビルドを壊すことにうんざりし、コードをリポジトリにコミットする前に、コードが

続きを読む

チュートリアルシリーズ:初心者向けのAndroid Studio

Android Studioのインストールから、最初のAndroidアプリのコーディングとデバッグまで、AndroidStudioの完全な初心者向けガイド。AndroidデバイスエミュレーターのトラブルシューティングのヒントとAndroidサンプルアプリのソースコードが含まれています。 ヴァサビイ/ゲッティイメージズ パート1:インストール+セットアップ Android Studio 3.xをインストールし、最初のAndroidプロジェクトを起動するためのシステム要件と手順を入手してください。最初のAndroidプロジェクトを開始し、AndroidStudioのメインウィンドウについて理解します。 ヴァサビイ/ゲッティイメージズ パート2:アプリを探索してコーディングする Android Studioのプロジェクトエディターを使用して、最初のアニメーションAndroidアプリを作成します。アプリをコーディングし、AndroidStudioを使用してソースコードとリソースを

続きを読む

初心者向けAndroidStudio、パート1:インストールとセットアップ

更新日:2020年1月。 ここ数年、AndroidがモバイルOSの世界で考慮されるべき力であることは明らかです。このJavaベースのテクノロジーは、プログラマーがモバイルアプリからお金を稼ぐために競争するという、新たなゴールドラッシュを引き起こしました。Indeed.comを使用した簡単な求人検索で示されているように、Androidの求人も豊富です。 Android開発者が成功するには、Java言語(またはKotlin)、Android API、およびAndroidアプリケーションアーキテクチャを十分に理解している必要があります。適切で効果的な開発環境を使用することも重要です。長年にわたり、ADTプラグインを備えたEclipse IDEは、Android開発に適したプラットフォームでした。

続きを読む

アプリサーバー、ウェブサーバー:違いは何ですか?

2002年8月23日 Q:アプリケーションサーバーとWebサーバーの違いは何ですか? A: WebサーバーはHTTP要求のみを処理しますが、アプリケーションサーバーは任意の数のプロトコルを介してアプリケーションプログラムにビジネスロジックを提供します。 それぞれをさらに詳しく調べてみましょう。 Webサーバー WebサーバーがHTTPプロトコルを処理します。 WebサーバーはHTTP要求を受信すると、HTMLページの返送などのHTTP応答で応答します。リクエストを処理するために、Webサーバーは静的HTMLページまたはイメージで応答するか、リダイレクトを送信するか、動的応答の生成をCGIスクリプト、JSP(JavaServer Pages)、サーブレット、ASP(Active Server Pages)などの他のプログラムに委任します。 )、サーバーサイドJavaScript、またはその他のサーバーサイドテクノロジー。その目的が何であれ、そのようなサーバー側プログラムは、Webブラウザーで表示するために、ほとんどの場合HTMLで応答を生成します。 Webサーバーの委任モデルはかなり単純であることを理解してください。要求がWebサーバーに着信すると、Webサーバーは、要求を最も適切に処理できるプログラムに要求を渡すだけです。Webサーバーは、サーバー側プログラムが実行され、

続きを読む

JDBCとは何ですか?Javaデータベースコネクティビティの概要

JDBC(Java Database Connectivity)は、データベースへの接続、クエリとコマンドの発行、およびデータベースから取得した結果セットの処理を管理するJavaAPIです。1997年にJDK1.1の一部としてリリースされたJDBCは、Java永続層用に開発された最初のコンポーネントの1つでした。 JDBCは当初、クライアント側APIとして考案され、Javaクライアントがデータソースと対話できるようにしました。これは、サーバー側のJDBC接続をサポートするオプションのパッケージを含むJDCB2.0で変更されました。それ以降のすべての新しいJDBCリリースでは、クライアント側パッケージ(java.sql)とサーバー側パッケージ()の両方が更新されていますjavax.sql。この記事の執筆時点で最新バージョンであるJDBC4.3は、2017年9月にJava SE9の一部としてリリースされました。 この記事では、JDBCの概要を示した後、JDBCAPIを使用してJavaクライアントを軽量のリレーショナルデータベースであるSQLiteに接続する方法を実践的に紹介します。 JDBCのしくみ JDBCは、CベースのODBC(Open Database Connectivity)APIの代替として開発され、データベースまたはRDBMSと通信するJavaアプリケーションのメカニ

続きを読む

Pythonとは何ですか?強力で直感的なプログラミング

1991年にさかのぼり、Pythonプログラミング言語はギャップフィラー、「退屈なものを自動化する」(Pythonの学習に関する人気のある本の1つとして)スクリプトを作成する方法、または他の言語で実装されるアプリケーションのプロトタイプを迅速に作成する方法と見なされていました。 。 ただし、過去数年間で、Pythonは、最新のソフトウェア開発、インフラストラクチャ管理、およびデータ分析において一級市民として浮上してきました。これはもはやバックルームユーティリティ言語ではありませんが、Webアプリケーションの作成とシステム管理における主要な力であり、ビッグデータ分析とマシンインテリジェンスの爆発的な増加の主要な推進力です。 関連ビデオ:Pythonがプログラミングを容易にする方法 PythonはITに最適で、システムの自動化から機械学習などの最先端の分野での作業まで、さまざまな種類の作業を簡素化します。 Pythonの主な利点  Pythonの成功は、初心者にも専門家にも同様に提供するいくつかの利点を中心に展開しています。 Pythonは習得と使用が簡単です 言語自体の機能の数は控えめであり、最初のプログラムを作成するための時間や労力の投資は比較的少なくて済みます。Python構文は、読みやすく簡単になるように設計されています。この単純さにより、Pythonは理想

続きを読む

Javaのインターフェース

Javaインターフェースはクラスとは異なり、Javaプログラムでそれらの特別なプロパティを使用する方法を知ることが重要です。このチュートリアルでは、クラスとインターフェースの違いを紹介し、Javaインターフェースを宣言、実装、および拡張する方法を示す例を紹介します。 また、デフォルトメソッドと静的メソッドが追加されたJava 8、および新しいプライベートメソッドが追加されたJava9でインターフェイスがどのように進化したかについても学習します。これらの追加により、経験豊富な開発者にとってインターフェイスがより便利になります。残念ながら、それらはクラスとインターフェースの間の境界線も曖昧にし、インターフェースプログラミングをJava初心者にとってさらに混乱させます。ダウンロードコードを取得するこのチュートリアルのサンプルアプリケーションのソースコードをダウンロードします。JavaWorld用にJeffFriesenによって作成されました。 Javaインターフェースとは何ですか? インターフェイスは、 2つのシステムが満たすポイントと相互作用です。たとえば、自動販売機のインターフェースを使用して、アイテムを選択し、支払いを行い、食べ物や飲み物のアイテムを受け取ることができます。プログラミングの観点からは、インターフェイスはソフトウェアコンポーネント間にあります。メソッドヘッダー(メ

続きを読む

TensorFlowとは何ですか?機械学習ライブラリの説明

機械学習は複雑な分野です。しかし、機械学習モデルの実装は、データの取得、モデルのトレーニング、予測の提供、将来の結果の改善のプロセスを容易にするGoogleのTensorFlowなどの機械学習フレームワークのおかげで、以前よりもはるかに困難で困難ではありません。 Google Brainチームによって作成されたTensorFlowは、数値計算と大規模な機械学習のためのオープンソースライブラリです。TensorFlowは、多数の機械学習とディープラーニング(別名ニューラルネットワーキング)のモデルとアルゴリズムをバンドルし、共通のメタファーとしてそれらを便利にします。Pythonを使用して、フレームワークを使用してアプリケーションを構築するための便利なフロントエンドAPIを提供すると同時に、それらのアプリケーションを高性能C ++で実行します。 TensorFlowは、手書きの数字分類、画像認識、単語の埋め込み、リカレントニューラルネットワーク、機械翻訳のシーケンス間モデル、自然言語処理、PDE(偏微分方程式)ベースのシミュレーションのためのディープニューラルネットワークをトレーニングして実行できます。何よりも、TensorFlowは、トレーニングに使用されるのと同じモデルを使用して、大規模な生産予測をサポートします。 TensorFlowの仕組み TensorFlowを使用する

続きを読む

JavaでのComparableおよびComparatorによるソート

プログラマーは、データベースの要素をコレクション、配列、またはマップに並べ替える必要があることがよくあります。Javaでは、任意のタイプで必要なソートアルゴリズムを実装できます。ComparableインターフェイスとcompareTo()メソッドを使用すると、アルファベット順、String長さ、アルファベットの逆順、または数字を使用して並べ替えることができます。Comparatorインターフェースは、私たちは同じですが、より柔軟な方法でを行うことができます。 何をしたいのか、与えられたインターフェースとタイプに対して正しいソートロジックを実装する方法を知る必要があります。 ソースコードを入手する このJavaチャレンジャーのコードを入手してください。例に従いながら、独自のテストを実行できます。 カスタムオブジェクトを使用したJavaリストの並べ替え この例では、これまでに他のJavaチャレンジャーに使用したものと同じPOJOを使用します。この最初の例では、ジェネリック型Simpsonを使用Simpsonして、クラスにComparableインターフェイスを実装します。 class Simpson implements Comparable { String name; Simpson(String name) { this.name = name; } @Override p

続きを読む

Node.jsとPHP:開発者のマインドシェアをめぐる壮大な戦い

それは古典的なハリウッドの陰謀です:別々の道を進んだ2人の古い友人の間の戦い。多くの場合、摩擦は、一方の仲間が常にもう一方の仲間の口に出さない領域に興味を持ったときに始まります。この映画のプログラミング言語バージョンでは、仲間のフリックを恨みの一致に変えるのはNode.jsの導入です。PHPとJavaScriptは、かつてインターネットを一緒に支配していたが、現在は開発者のマインドシェアのためにそれを公にしています。 昔は、パートナーシップは単純でした。JavaScriptはブラウザの詳細をほとんど処理しませんでしたが、PHPはポート80とMySQLの間のすべてのサーバー側タスクを管理しました。それはインターネットの多くの重要な部分をサポートし続けている幸せな組合でした。WordPress、Drupal、Facebookの間で、人々はPHPに出くわさずにWeb上を移動するこ

続きを読む

Apache Sparkとは何ですか?Hadoopを粉砕したビッグデータプラットフォーム

ApacheSparkが定義されました Apache Sparkは、非常に大きなデータセットで処理タスクをすばやく実行できるデータ処理フレームワークであり、データ処理タスクを単独で、または他の分散コンピューティングツールと連携して複数のコンピューターに分散することもできます。これらの2つの品質は、ビッグデータと機械学習の世界の鍵であり、大規模なデータストアを処理するために大規模なコンピューティングパワーのマーシャリングが必要です。Sparkはまた、分散コンピューティングとビッグデータ処理の面倒な作業の多くを抽象化する使いやすいAPIを使用して、開発者の肩からこれらのタスクのプログラミング負担の一部を取り除きます。 2009年にカリフォルニア大学バークレー校のAMPLabで謙虚に始まって以来、ApacheSparkは世界の主要なビッグデータ分散処理フレームワークの1つになりました。Sparkはさまざまな方法でデプロイでき、Java、Scala、Python、およびRプログラミング言語のネイティブバインディングを提供し、SQL、ストリーミングデータ、機械学習、グラフ処理をサポートします。銀行、通信会社、ゲーム会社、政府、そしてApple、Facebook、IBM、Microsoftなどのすべての主要なテクノロジー大手によって使用されています。 ApacheSparkアーキテクチャ

続きを読む

Kotlinとは何ですか?Javaの代替案は説明しました

Kotlinは、オブジェクト指向と関数型プログラミング機能を組み合わせた、JVM(Java仮想マシン)とAndroid向けに最初に設計された、汎用の無料のオープンソースの静的に型付けされた「実用的な」プログラミング言語です。相互運用性、安全性、明快さ、およびツールのサポートに重点を置いています。JavaScript ES5.1および多数のプロセッサ用のネイティブコード(LLVMを使用)を対象とするKotlinのバージョンも本番環境にあります。 Kotlinは、2010年にIntelliJ IDEAの背後にある会社であるJetBrainsで始まり、2012年からオープンソースになっています。Kotlinチームには現在JetBrainsから90人以上のフルタイムメンバーがおり、GitHubのKotlinプロジェクトには300人以上の貢献者がいます。JetBrainsは、主力製品であるIntelliJIDEAを含む多くの製品でKo

続きを読む

サービス指向アーキテクチャとは何ですか?

サービス指向アーキテクチャー(SOA)は、分散コンピューティングの進化として今世紀の初めに登場しました。SOA以前は、サービスはアプリケーション開発プロセスの最終結果として理解されていました。SOAでは、アプリケーション自体がサービスで構成されています。サービスは個別に提供することも、より大規模な複合サービスのコンポーネントとして組み合わせて提供することもできます。 サービスは、RESTやSOAP(Simple Object Access Protocol)などのプロトコルを使用してネットワーク経由で対話します。サービスは疎結合です。つまり、サービスインターフェイスは基盤となる実装から独立しています。開発者またはシステムインテグレーターは、各サービスがどのように実装されているかを必ずしも知らなくても、1つ以上のサービスをアプリケーションに構成できます。 この記事は、Java SOAの概要と、SOAPベースのWebサービスを使用して実装されたサービス指向アーキテクチャーの主な特徴です。また、SOAとマイクロサービスを簡単に比較し、JavaでのRESTfulとSOAPベースのWebサービスの違いについて説明します。 SOAおよびWebサービス SOAとWebサービスは頻繁に混同されますが、同じものではありません。SOAは、開発者が複数のアプリケーションサービスをより大きな複合サービ

続きを読む

Dockerとは何ですか?コンテナ革命の火花

Dockerは、コンテナーに基づいてアプリケーションを構築するためのソフトウェアプラットフォームです。これは、オペレーティングシステムカーネルを共有して使用するが、それ以外の場合は互いに分離して実行される、小型で軽量の実行環境です。概念としてのコンテナーはしばらく前から存在していましたが、2013年に開始されたオープンソースプロジェクトであるDockerは、テクノロジーの普及に役立ち 、クラウドネイティブとして知られるようになったソフトウェア開発におけるコンテナー化とマイクロサービスへのトレンドを推進するのに役立ちました。開発。 コンテナとは何ですか? 最新のソフトウェア開発の目標の1つは、同じホストまたはクラスター上のアプリケーションを互いに分離して、互いの操作や保守に過度に干渉しないようにすることです。パッケージ、ライブラリ、およびそれらを実行するために必要なその他のソフトウェアコンポーネントのおかげで、これは難しい場合があります。この問題の解決策の1つは、同じハードウェア上のアプリケーションを完全に分離し、ソフトウェアコンポーネント間の競合やハードウェアリソースの競合を最小限に抑える仮想マシンです。ただし、仮想マシンはかさばり、それぞれに独自のOSが必要なため、通常はギガバイトのサイズであり、保守とアップグレードが困難です。 対照的に、コンテナはアプリケーションの

続きを読む

JDKとは何ですか?Java DevelopmentKitの概要

Java Development Kit(JDK)は、JVM(Java仮想マシン)およびJRE(Javaランタイム環境)とともに、Javaプログラミングで使用される3つのコアテクノロジーパッケージの1つです。これらの3つのテクノロジーを区別し、それらがどのように接続されているかを理解することが重要です。 JVMは、プログラムを実行するJavaプラットフォームコンポーネントです。 JREは、JVMを作成するJavaのディスク上の部分です。 JDKを使用すると、開発者は、JVMおよびJREで実行および実行できるJavaプログラムを作成できます。 Javaを初めて使用する開発者は、Java DevelopmentKitとJavaランタイム環境を混同することがよくあります。違いは、JDKがJavaベースのソフトウェアを開発するためのツールのパッケージであるのに対し、JREはJavaコードを実行するためのツールのパッケージであるということです。 JREは、Javaプログラムを実行するためのスタンドアロンコンポーネントとして使用できますが、JDKの一部でもあります。Javaプログラムの実行はそれらの開発の一部であるため、JDKにはJREが必要です。 図1は、JDKがJavaアプリケーション開発ライフサイクルにどのように適合するかを示しています。 マシュータイソン 最近Ja

続きを読む

Javaのデータ構造とアルゴリズム、パート1:概要

Javaプログラマーは、データ構造を使用してデータを格納および編成し、アルゴリズムを使用してそれらの構造内のデータを操作します。データ構造とアルゴリズム、およびそれらがどのように連携するかを理解すればするほど、Javaプログラムはより効率的になります。 このチュートリアルでは、データ構造とアルゴリズムを紹介する短いシリーズを開始します。パート1では、データ構造とは何か、およびデータ構造がどのように分類されるかを学習します。また、アルゴリズムとは何か、アルゴリズムがどのように表現されるか、時間と空間の複雑さの関数を使用して同様のアルゴリズムを比較する方法についても学習します。これらの基本を理解したら、パート2で、1次元配列を使用した検索と並べ替えについて学習する準備が整います。 データ構造とは何ですか? データ構造は、ウィキペディアが次のように定義している抽象データ型(ADT)に基づいています。 [A]データ型の数学モデル。データ型は、データのユーザーの観点から、特に可能な値、この型のデータに対する可能な操作、および動作の観点から、その動作(セマンティクス)によって定義されます。これらの操作の。 ADTは、その値のメモリ表現やその操作の実装方法を気にしません。これはJavaインターフェースのようなもので、どの実装からも切り離されたデータ型です。対照的に、データ構造は、Javaク

続きを読む

私がWindows詐欺師の餌食をすることを学んだこと

「私はあなたをWindowsから呼んでいます。」 よく知られている電話詐欺のオープニングラインもそうです。そこでは、ヘルプデスクの技術者を装って電話をかけ、コンピュータの問題を解決するために手を差し伸べます。これらのWindows詐欺師は、データ侵害や個人情報の盗難に関する人々の懸念を取り除き、マルウェアをマシンにインストールするように仕向けます。発信者の言うことのどれも意味がないという事実にもかかわらず、詐欺は何年もの間犠牲者を網にかけています。 私は最近そのような電話を受けて、詐欺がどのように進化するか、そしてプレーヤーが誰であるかを見るために一緒に遊ぶことに決めました。3か月の間に、さまざまな人から平均して週に4回電話があり、すべての人が私のコンピューターがハッキングされたこと、そして彼らがその日を救うために電話をかけていることを証明しようとしました。さまざまな会話のギャンビットを試したり、自分で質問したりする機会が何度もありました。これが、「ジェイク」、「メアリー」、「ナンシー」、「グレッグ」、「ウィリアム」などとの会話を通じて、Windows詐欺師のアンダーワールドについて私が見つけたものです。 詐欺の成功は、役立つことにかかっています 発信者は礼儀正しく、非常に真剣に聞こえ、ハッカーが銀行口座を略奪し、身元を盗み、パスワードを侵害する方法を詳細に説明しています。彼

続きを読む

Javaでのソケットプログラミング:チュートリアル

このチュートリアルは、Java I / Oの基本機能を示す簡単なクライアントサーバーの例から始めて、Javaでのソケットプログラミングの概要です。元のjava.io パッケージと、Java1.4でjava.nio導入されたノンブロッキングI / O()APIであるNIOの 両方を  紹介します。最後に、NIO.2でJava7以降に実装されたJavaネットワーキングを示す例を示します。 ソケットプログラミングは、互いに通信する2つのシステムに要約されます。一般に、ネットワーク通信には、トランスポート制御プロトコル(TCP)とユーザーデータグラムプロトコル(UDP)の2種類があります。TCPとUDPは異なる目的で使用され、どちらにも固有の制約があります。 TCPは比較的シンプルで信頼性の高いプロトコルで

続きを読む

Javaオブジェクトをequals()およびhashcode()と比較する

このJavaチャレンジャーでは、Javaプログラムでオブジェクトの比較を効率的かつ簡単にする方法equals()とhashcode()組み合わせを学習します。簡単に言えば、これらのメソッドは連携して、2つのオブジェクトが同じ値を持っているかどうかを確認します。   これがないequals()と、オブジェクトのすべてのフィールドを比較して、hashcode()非常に大きな「if」比較を作成する必要があります。これにより、コードが非常に混乱し、読みにくくなります。これら2つの方法を組み合わせることで、より柔軟でまとまりのあるコードを作成できます。 Javaチャレンジャーのソースコードを入手してください。 Javaでequals()とhashcode()をオーバーライドする メソッドのオーバーライドは、ポリモーフィズムを利用するために、親クラスまたはインターフェイスの動作がサブクラスに再度書き込まれる(オーバーライドされる)手法です。ObjectJavaのすべてにequals()とhashcode()メソッドが含まれていますが、正しく機能するにはそれらをオーバーライドする必要があります。 オーバーライドがequals()と  hashcode()でどのように機能するかを理解するために、コアJavaクラスでのそれらの実装を調べることができます。以下は、クラスのeq

続きを読む

Java 101:Javaスレッドを理解する、パート1:スレッドとランナブルの紹介

この記事は、Javaスレッドを探求する4部構成のJava101シリーズの最初の記事です。Javaでのスレッド化は理解するのが難しいと思うかもしれませんが、スレッドが理解しやすいことをお見せしたいと思います。この記事では、Javaスレッドとランナブルを紹介します。以降の記事では、同期(ロックを介して)、同期の問題(デッドロックなど)、待機/通知メカニズム、スケジューリング(優先度の有無にかかわらず)、スレッドの中断、タイマー、揮発性、スレッドグループ、スレッドローカル変数について説明します。 。 この記事(JavaWorldアーカイブの一部)は、2013年5月に新しいコードリストとダウンロード可能なソースコードで更新されたことに注意してください。 Javaスレッドを理解する-シリーズ全体を読む パート1:スレッドとランナブルの紹介 パート2:同期 パート3:スレッドのスケジューリングと待機/通知 パート4:スレッドグループとボラティリティ スレッドとは何ですか? 概念的には、スレッドの概念を理解するのは難しくありません。それは、プログラムコードを介した独立した実行パスです。複数のスレッドが実行される場合、同じコードを通る1つのスレッドのパスは、通常、他のスレッドとは異なります。たとえば、あるスレッドがif-elseステートメントのif部分に相当するバイトコードを実

続きを読む

今学ぶのに最適なプログラミング言語

コンピューターを理解し、私たちの意志に曲げる最良の方法は、コンピューターが私たちのコマンドを理解できるように、コンピューターの言語を話すことを学ぶことです。ファンタジー小説を愛する人々は、魔法の呪文や呪文を学んでいると想像することがあります。実用的な心は、数値とデータの論理構造を表すために、より根拠のある言語を使用します。いずれにせよ、キーストロークとマウスクリックのどのシーケンスによってコンピューターが比喩的なフープを飛び越えて仮想ダンスを実行するかを理解することがすべてです。 すべての学校、MOOC、およびトレーニングサイトは、若いパダワン人のために第一言語を採用する必要があります。騒々しいハーバードのようないくつかの場所は、まだ70年代のCにしがみついていますが、多くの学校はJavaScript、Python、およびJavaの間で振動しています。1つはすべてのブラウザに埋もれており、1つは社会科学のクリーンな選択であり、もう1つは数学に関心のある人々のタイプが豊富な好みです。 1つが最良の選択ですか?1つは明らかに他よりも優れていますか?それとも、夜にかなりの数の学生が枕に向かって叫んでいるのでしょうか。Java、Python、またはJavaScriptを学ぶための最良の理由を調べてみましょう。 Javaは古典的です Advanced Placementテストでは、Jav

続きを読む

プログラミングのニーズごとに12個のPython

ソフトウェア開発にPythonを選択するときは、あらゆる種類のプログラミングニーズをカバーする豊富なパッケージを備えた大規模な言語エコシステムを選択します。ただし、GUI開発から機械学習までのすべてのライブラリに加えて、多数のPythonランタイムから選択することもできます。これらのランタイムの一部は、他のランタイムよりも手元のユースケースに適している場合があります。 これは、標準実装(CPython)から、速度(PyPy)、特別な使用例(Anaconda、ActivePython)、さまざまな言語ランタイム(Jython、IronPython)、さらにはカッティング用に最適化されたバージョンまで、Pythonディストリビューションの簡単なツアーです-エッジ実験(PyCopy、MesaPy)。 CPython CPythonは、Pythonのリファレンス実装であり、他のすべてのPythonの化身が注目する標準バージョンです。CPythonは、名前が示すようにCで記述されており、Python言語に関するすべてのトップレベルの決定を担当する同じコアグループによって作成されています。 CPythonのユースケース CPythonはPythonのリファレンス実装であるため、最適化の点で最も保守的です。これは仕様によるものです。Pythonのメンテナは、CPythonが利用可能なPyt

続きを読む

VisualStudioコードとVisualStudio:選択方法

何十年もの間、私が朝仕事を始めたとき、私はMicrosoft Visual Studio(またはVisual C ++やVisualInterDevなどのその前身の1つ)を起動し、お茶を淹れ、おそらく面倒なスタートアップを経ている間に朝の会議に出席しました。別の起動遅延を回避するために、開発/テスト/デバッグのサイクルを実行している間、IDEを一日中開いたままにしておきます。約200万行のコードを含むC ++プロジェクトに取り組んだとき、コードのチェックアウトと製品の完全な再構築を数時間で行うバッチスクリプトを自動的に実行することで、毎日の作業をすぐに開始しました。 最近では 、コードプロジェクトを毎朝最初に開く必要はなく、終日開いたままにしておく必要もありません。Visual Studio Codeは通常、大規模なプロジェクトであっても、数分で生産性を上げることができるほど迅速に起動します。いつもではありませんが、いつも言っていました。VisualStudioCode自体は毎月更新する必要があり、インストールした多くの拡張機能には独自の更新が必要になることがよくあります。それでも、Visual Studio Codeで12個の拡張機能を更新する場合でも、大規模なC ++プロジェクトのシンボルテーブルを再構築するのにかかる時間よりもはるかに短い時間で済みます。 Visua

続きを読む

Pythonをスマートにインストールする方法

Pythonは使いやすく、初心者にも使いやすく、ほぼすべてのアプリケーションで堅牢なソフトウェアを作成するのに十分強力です。ただし、それでも他のソフトウェアと同様にソフトウェアであるため、セットアップと管理が複雑になる可能性があります。 この記事では、Pythonを正しい方法でセットアップする方法、適切なバージョンを選択する方法、複数のバージョンが互いに踏まないようにする方法、および他のすべての鋭いエッジと潜在的な落とし穴を回避する方法について説明します。仕方。 適切なPythonのバージョンとディストリビューションを選択してください サードパーティのモジュールとの互換性のために、現在のバージョンよりも1つの主要なポイントリビジョンであるPythonバージョンを選択するのが常に最も安全です。 この記事の執筆時点では、Python3.8.1が最新バージョンです。したがって、安全な方法は、Python 3.7の最新の更新(この場合はPython 3.7.6)を使用することです。 Pythonの最新バージョンは、VMやテストマシンなど、制御された方法でいつでも試すことができますが、バージョンを1つ戻すと、一般的なサードパーティのPythonパッケージとの最高の互換性が保証されます。 Pythonも、Linuxとほぼ同じように、さまざまなディストリビューションで提供されます。ただし、

続きを読む

「ピープルファインダー」サイトから個人データをスクラブする方法

オンラインで何をするかは問題ではありません。インターネットはあなたのことをたくさん知っており、その情報はマウスをクリックするだけです。 ピープルファインダーサイト(Spokeo、PeekYou、Whitepagesなど)を検索すると、フルネーム、生年月日、家族の名前、現在の住所、電話番号が記載されたページが見つかる可能性があります。サイトの積極性に応じて、過去の住所、ソーシャルメディアのプロフィール、婚姻状況、雇用歴、教育、破産、趣味などの訴訟などの追加の詳細を提供する場合があります(低い会費またはアカウントの登録価格で)。そしてあなたが住んでいる場所の写真さえ。 国家安全保障局を忘れてください。Intelius、Radaris、PeopleFinderなどのアグリゲーターサイトには、あなたに関する情報が満載のデータウェアハウスがあり、許可なくユーザーがアクセスでき、何も知らない目的で使用されます。これらのサイトは、表面上は身元調査やその他の公共サービスを提供しますが、個人情報の盗難、ストーカー行為、およびドキシング(個人情報をオンラインで公開して嫌がらせを助長する)も簡素化します。これは不気味でまったく危険です。 幸い、ほとんどのアグリゲーターにはオプトアウトポリシーがあるため、情報を使用しないように明示的に注文できます。しかし、それらの多くにとって(驚きです!)、オプトアウ

続きを読む

JSFとは何ですか?JavaServerFacesの紹介

JavaServer Faces(JSF)は、コンポーネントベースのイベント指向のWebインターフェイスを構築するためのJava標準テクノロジです。JavaServer Pages(JSP)と同様に、JSFではサーバー側のデータとロジックにアクセスできます。本質的にサーバー側の機能が組み込まれたHTMLページであるJSPとは異なり、JSFは論理ツリー内の正式なコンポーネントを表すXMLドキュメントです。JSFコンポーネントは、HTMLに依存せず、リモートAPIやデータベースへのアクセスを含むすべてのJava機能を備えたJavaオブジェクトによってサポートされています。 JSFのようなフレームワークの重要なアイデアは、HTML、CSS、JavaScriptなどのクライアント側テクノロジをカプセル化(またはラップ)して、開発者がこれらのテクノロジとあまり対話せずにWebインターフェイスを構築できるようにすることです。 この記事では、JavaWebアプリケーションのコンポーネントベースのUI開発に対するJSFのアプローチのスナップショットを示します。簡単な例では、JSFのMVCアーキテクチャ、イベントモデル、およびコンポーネントライブラリを紹介します。例には、JSF 2.3の新機能が含まれ、コンポーネントライブラリにはPrimeFacesを使用します。 進化するJSF 長い間人気があ

続きを読む

JREとは何ですか?Javaランタイム環境の概要

Java Development Kit(JDK)、Java Virtual Machine(JVM)、およびJava Runtime Environment(JRE)は、Javaアプリケーションを開発および実行するための強力な3つのJavaプラットフォームコンポーネントを形成します。以前、JDKとJVMを紹介しました。このクイックチュートリアルでは、Javaのランタイム環境であるJREについて学習します。 実際には、ランタイム環境は、他のソフトウェアを実行するように設計されたソフトウェアです。JREには、Javaのランタイム環境として、Javaクラスライブラリ、Javaクラスローダー、およびJava仮想マシンが含まれています。このシステムでは: クラスローダーは、クラスを正しくロードし、それらをコアJavaクラスライブラリに接続する役割を果たします。 JVMは、 Javaアプリケーションは、彼らが実行して、デバイスやクラウド環境でも実行するために必要なリソースを持って確保する責任があります。 JREは、主にそれらの他のコンポーネントのコンテナであり、その活動を組織する責任があります。 次のセクションでは、これらのコンポーネントがどのように連携するかについてさらに深く掘り下げます。 JDK、JRE、およびJVMのインストール インストールの観点から、JDKをダウン

続きを読む

Javaの例外、パート1:例外処理の基本

Javaの例外は、プログラムの失敗を表現して処理するために使用されるライブラリタイプと言語機能です。ソースコードで障害がどのように表されるかを理解したい場合は、適切な場所に来ました。Java例外の概要に加えて、オブジェクトのスロー、失敗する可能性のあるコードの試行、スローされたオブジェクトのキャッチ、および例外がスローされた後のJavaコードのクリーンアップに関するJavaの言語機能の概要を説明します。 このチュートリアルの前半では、Java1.0以降に使用されてきた基本的な言語機能とライブラリタイプについて学習します。後半では、最近のJavaバージョンで導入された高度な機能について説明します。 このチュートリアルのコード例はJDK12と互換性があることに注意してください。ダウンロードコードを取得するこのチュートリアルのサンプルアプリケーションのソースコードをダウンロードします。JavaWorld用にJeffFriesenによって作成されました。 Javaの例外とは何ですか? 失敗は、Javaプログラムの通常の動作が予期しない動作によって中断された場合に発生します。この相違は例外として知られています。たとえば、プログラムがファイルを開いてその内容を読み取ろうとしましたが、ファイルが存在しません。Javaは例外をいくつかのタイプに分類するので、それぞれについて考えてみましょう。

続きを読む

Java開発者向けの機械学習、パート1:機械学習のアルゴリズム

自動運転車、顔検出ソフトウェア、音声制御スピーカーはすべて、機械学習テクノロジーとフレームワークに基づいて構築されています。これらは最初の波にすぎません。次の10年間で、新世代の製品が私たちの世界を変革し、ソフトウェア開発と、私たちが作成および使用するアプリケーションと製品への新しいアプローチを開始します。 Java開発者として、特にテクノロジー企業が機械学習に真剣に投資し始めているため、この曲線を先取りしたいと考えています。今日学んだことは、今後5年間で積み重ねることができますが、どこかから始めなければなりません。 この記事はあなたが始めるのに役立ちます。機械学習がどのように機能するかについての第一印象から始め、次に機械学習アルゴリズムの実装とトレーニングの簡単なガイドを示します。学習アルゴリズムの内部と、最適な予測関数のトレーニング、スコアリング、選択に使用できる機能を学習した後、JVMフレームワークであるWekaを使用して機械学習ソリューションを構築する方法の概要を説明します。この記事では、インテリジェントアプリケーションを開発するための最も一般的なアプローチである教師あり機械学習に焦点を当てています。 Java開発者向けの機械学習、パート2 次のステップの準備はできていますか?このチュートリアルの後半では、機械学習データパイプラインを開発してデプロイする方法を示します。

続きを読む

Tomcatとは何ですか?元のJavaサーブレットコンテナ

Apache Tomcatは、Javaサーブレット、JavaServer Pages(JSP)、WebSockets APIなど、いくつかのコアJavaエンタープライズ仕様を実装する長寿命のオープンソースJavaサーブレットコンテナです。 Apache Software FoundationプロジェクトであるTomcatは、Java自体からわずか4年後の1998年に最初にリリースされました。Tomcatは、最初のJavaサーブレットAPIとJSP仕様のリファレンス実装として開始されました。これらのテクノロジーのいずれのリファレンス実装でもなくなったものの、Tomcatは依然として最も広く使用されているJavaサーバーであり、十分にテストされ、実績のあるコアエンジンと優れた拡張性を誇っています。 この短い紹介では、多くのソフトウェアショップがJavaWebアプリの実行にTomcatを選択する理由を学びます。Tomcatの概要とその使用方法、およびこの記事の執筆時点での最新バージョンのインストール手順を説明します。 TomcatとJavaサーブレットAPI Tomcat9はサーブレット4.0仕様をサポートしており、JDK8以降が必要です。Tomcat 8.5は、HTTP / 2のようないくつかの新しい機能をサポートしていますが、サーブレット3コンテナのままです。 Tomcatはど

続きを読む

Javaのポリモーフィズムと継承

伝説のVenkatSubramaniamによると、ポリモーフィズムはオブジェクト指向プログラミングで最も重要な概念です。ポリモーフィズム(またはオブジェクトがそのタイプに基づいて特殊なアクションを実行する機能)が、Javaコードを柔軟にします。Command、Observer、Decorator、Strategyなど、Gang Of Fourによって作成された多くのデザインパターンはすべて、何らかの形のポリモーフィズムを使用しています。この概念を習得すると、プログラミングの課題に対する解決策を考える能力が大幅に向上します。 コードを取得する このチャレンジのソースコードを入手して、ここで独自のテストを実行できます://github.com/rafadelnero/javaworld-challengers ポリモーフィズムにおけるインターフェースと継承 このJavaチャレンジャーでは、ポリモーフィズムと継承の関係に焦点を当てています。覚えておくべき主なことは、ポリモーフィズムには継承またはインターフェースの実装が必要であるということです。これは、デュークとジャギーをフィーチャーした以下の例で確認できます。 public abstract class JavaMascot { public abstract void executeAction(); } public clas

続きを読む

Node.jsとJava:開発者のマインドシェアをめぐる壮大な戦い

コンピューティングの歴史において、1995年はクレイジーな時期でした。最初にJavaが登場し、次にJavaScriptが登場しました。名前はそれらを新たに切り離された結合双生児のように見せましたが、それ以上の違いはありませんでした。それらの1つはコンパイルされ、静的に型付けされます。もう1つは解釈され、動的に型付けされます。これは、Node.jsのおかげで、ある種の衝突コースに移行した、これら2つの大きく異なる言語間の技術的な違いの始まりにすぎません。 あなたがその頃にいるのに十分な年齢であるならば、あなたはJavaの初期の壮大なピークを覚えているかもしれません。それは実験室を去り、その誇大広告メーターは固定されました。誰もがそれを、コンピューティングの完全な乗っ取りに他ならない革命として見ていました。その予測は部分的にしか正しくありませんでした。今日、Javaは、Androidスマートフォン、エンタープライズコンピューティング、およびBlu-rayディスクなどの一部の組み込み世界を支配しています。 しかし、そのす

続きを読む

LLVMとは何ですか?Swift、Rust、Clangなどの背後にある力

新しい言語、および既存の言語の改善は、開発環境全体で急成長しています。MozillaのRust、AppleのSwift、JetbrainsのKotlin、および他の多くの言語は、開発者に速度、安全性、利便性、移植性、およびパワーに関する新しい選択肢を提供します。 なぜ今なのか?大きな理由の1つは、言語を構築するための新しいツール、特にコンパイラーです。その中で最も重要なのは、イリノイ大学の研究プロジェクトとしてSwift言語の作成者であるChrisLattnerによって最初に開発されたオープンソースプロジェクトであるLLVMです。 LLVMを使用すると、新しい言語を簡単に作成できるだけでなく、既存の言語の開発を強化できます。コンパイラの作成、出力されたコードの複数のプラットフォームとアーキテクチャへの移植、ベクトル化などのアーキテクチャ固有の最適化の生成、次のような一般的な言語の比喩を処理するコードの記述など、言語作成タスクの最もありがたい部分の多くを自動化するためのツールを提供します。例外。その自由なライセンスは、ソフトウェアコンポーネントとして自由に再利用したり、サービスとして展開したりできることを意味します。 LLVMを利用する言語の名簿には、多くのよく知られた名前があります。AppleのSwift言語はコンパイラフレームワークとしてLLVMを使用し、Rustはツールチェー

続きを読む

継承と構成:選択方法

継承と構成は、開発者がクラスとオブジェクト間の関係を確立するために使用する2つのプログラミング手法です。継承はあるクラスを別のクラスから派生させますが、構成はクラスをその部分の合計として定義します。 継承関係で親またはスーパークラスを変更するとコードが破損するリスクがあるため、継承によって作成されたクラスとオブジェクトは緊密に結合されています。コンポジションによって作成されたクラスとオブジェクトは疎結合です。つまり、コードを壊すことなく、コンポーネントパーツをより簡単に変更できます。 疎結合コードは柔軟性が高いため、多くの開発者は、合成が継承よりも優れた手法であることを学びましたが、真実はより複雑です。プログラミングツールの選択は、正しいキッチンツールの選択に似ています。野菜を切るのにバターナイフを使用することはありません。同様に、すべてのプログラミングシナリオで構成を選択するべきではありません。  このJavaチャレンジャーでは、継承と構成の違いと、どちらがプログラムに適しているかを判断する方法を学習します。次に、Java継承のいくつかの重要であるが挑戦的な側面を紹介します。メソッドのオーバーライド、superキーワード、型キャストです。最後に、継承の例を1行ずつ調べて、出力がどうあるべきかを判断することで、学んだことをテストします。 Javaで継承を使用する場合

続きを読む

C#での仮想メソッドと抽象メソッドの調査

C#プログラミング言語は、仮想メソッドと抽象メソッドの両方をサポートします。それぞれに明確な利点があります。仮想メソッドを使用して遅延バインディングを実装しますが、抽象メソッドを使用すると、型のサブクラスにメソッドを明示的にオーバーライドさせることができます。この投稿では、仮想メソッドと抽象メソッドの両方、およびそれらをいつ使用する必要があるかについて説明します。 仮想メソッドは、基本クラスで仮想として宣言されているメソッドです。メソッドは、メソッドシグネチャでキーワード「virtual」を指定することにより、仮想として宣言されます。仮想メソッドには、戻り値の型がある場合とない場合があります。仮想メソッドを使用すると、そのタイプのサブクラスでメソッドをオーバーライドできます。これらは、ランタイムポリモーフィズムまたは遅延バインディングを実装するために使用されます。クラスの仮想メンバーまたは抽象メンバーをプライベートとして宣言できないことに注意してください。また、仮想メソッドに実装を含めることができます。つまり、仮想メソッドに実装を含めることができます。これらの実装は、仮想メソッドが定義されているタイプのサブクラスによってオーバーライドできます。 MSDNは次のように述べています。「virtualキーワードは、メソッド、プロパティ、インデクサー、またはイベント宣言を変更し、派生クラス

続きを読む

NoSQLとは何ですか?クラウド規模の未来のためのデータベース

アプリケーションを開発するときに行う最も基本的な選択の1つは、SQLデータベースとNoSQLデータベースのどちらを使用してデータを格納するかです。従来のSQL(つまりリレーショナル)データベースは、何十年にもわたるテクノロジーの進化、グッドプラクティス、および実際のストレステストの成果です。これらは、基幹業務アプリケーションの主要部分である、信頼性の高いトランザクションとアドホッククエリ用に設計されています。ただし、厳密なスキーマなど、他の種類のアプリには適さないという制限もあります。 これらの制限に対応して、NoSQLデータベースが生まれました。NoSQLシステムは、開発者の側で高い運用速度と優れた柔軟性を可能にする方法でデータを保存および管理します。多くは、Google、Amazon、Yahoo、Facebookなど、大規模なWebサイトのコンテンツを保存したりデータを処理したりするためのより良い方法を模索している企業によって開発されました。SQLデータベースとは異なり、多くのNoSQLデータベースは、数百または数千のサーバーにわたって水平方向に拡張できます。 ただし、NoSQLの利点はコストなしでは得られません。NoSQLシステムは通常、SQLデータベースと同じレベルのデータ整合性を提供しません。実際、SQLデータベースは従来、信頼性の高いトランザクションの背後にあるACID

続きを読む

JPAとHibernateを使用したJavaPersistence、パート1:エンティティと関係

Java Persistence API(JPA)は、リレーショナルデータベースとオブジェクト指向プログラミングの間のギャップを埋めるJava仕様です。この2部構成のチュートリアルでは、JPAを紹介し、JavaオブジェクトをJPAエンティティとしてモデル化する方法、エンティティの関係を定義する方法、およびEntityManagerJavaアプリケーションのリポジトリパターンでJPAを使用する方法について説明します。 このチュートリアルでは、JPAプロバイダーとしてHibernateを使用していることに注意してください。ほとんどの概念は、他のJava永続性フレームワークに拡張できます。 JPAとは何ですか? JPAと、EJB 3.0を含む関連フレームワークの進化については、「JPAとは?Java PersistenceAPIの概要」を参照してください。およびJDBC。 JPAのオブジェクト関係 リレーショナルデータベースは、1970年代からプログラムデータを保存する手段として存在してきました。今日の開発者はリレーショナルデータベースに代わる多くの選択肢を持っていますが、このタイプのデータベースはスケーラブルでよく理解されており、小規模および大規模なソフトウェア開発で今でも広く使用されています。 リレーショナルデータベースコンテキストのJavaオブジェクトは、エンティティとして

続きを読む

Javaでラムダ式を使い始める

Java SE 8より前は、通常、匿名クラスを使用して機能をメソッドに渡していました。この方法ではソースコードが難読化され、理解しにくくなりました。Java 8は、ラムダを導入することでこの問題を解消しました。このチュートリアルでは、最初にラムダ言語機能を紹介し、次にラムダ式とターゲットタイプを使用した関数型プログラミングの詳細を紹介します。また、ラムダがスコープ、ローカル変数、thisandsuperキーワード、およびJava例外とどのように相互作用するかについても学習します。  このチュートリアルのコード例はJDK12と互換性があることに注意してください。 自分でタイプを見つける このチュートリアルでは、これまで学習したことのないラムダ以外の言語機能については紹介しませんが、このシリーズでこれまで説明しなかった型を介してラムダをデモンストレーションします。一例はjava.lang.Mathクラスです。これらのタイプは、今後のJava101チュートリアルで紹介します。今のところ、JDK 12APIのドキュメントを読んで詳細を確認することをお勧めします。ダウンロードコードを取得するこのチュートリアルのサンプルアプリケーションのソースコードをダウンロードします。JavaWorld用にJeffFriesenによって作成されました。 ラムダ:入門書 ラムダ式(ラムダ)は

続きを読む

Go Pro:PowerShellのパワーユーザーガイド

Windows 10と格闘したことがあるなら、間違いなくPowerShellについて聞いたことがあるでしょう。最近Win7 / 8.1で何か凝ったことをしようとした場合は、PowerShellも登場するでしょう。何年にもわたってWindowsコマンドラインとまとめられたバッチファイルに依存した後、より強力で、より適応性のある、より優れたものに目を向ける時が来ました。 PowerShellはWindowsツールボックスへの巨大な追加であり、その巨大さを考えると、少し恐れを引き起こす可能性があります。それはスクリプト言語、コマンドシェル、フロアワックスですか?プロバイダーで実行するには、コマンドレットをインスタンス化された.Netクラスにリンクする必要がありますか?そして、なぜすべてのサポートドキュメントが管理者について話しているのですか?それを利用するには、プロのWindows管理者である必要がありますか? リラックス。PowerShellは強力ですが、威圧的である必要はありません。 次のガイドは、Windowsコマンドまたは2つを実行したか、バッチファイルを変更したことがある人を対象としています。好奇心旺盛なPowerShellからPowerShell対応への段階的な変換と考えてください。 ステップ1:クランクアップ 最初に必要なのはPowerShell自体です。Window

続きを読む

Linux:LubuntuはXubuntuよりも優れていますか?

Lubuntu対Xubuntu Ubuntuには、LubuntuやXubuntuなど、さまざまなフレーバーがあります。これらのUbuntuフレーバーはどちらも軽量デスクトップを提供しますが、どちらが優れていますか? LinuxとUbuntuのライターは最近、LubuntuとXubuntuの長所と短所を比較検討しました。 長年にわたり、LubuntuとXubuntuは2つの人気のあるフレーバーであり、UnityデスクトップでバニラUbuntu以外のものを好む多くの人々に代わるものを提供してきました。LubuntuとXubuntuは、無駄のない軽量のLinuxディストリビューション、または古いデスクトップやラップトップで最高のパフォーマンスを提供するディストリビューションを好むLinux愛好家やユーザーに選ばれています。しかし、これら2つのディストリビューションはどのように比較されますか、どちらをお勧めしますか、またその理由は何ですか? 最も軽量なものをお探しの場合は、Lubuntuが最適です。Xubuntuとは異なり、システムリソースの使用量が最も少なく、インストールされているアプリケーションの数も少なくなっています。Xubuntuは、UbuntuやKubuntuよりも軽量ですが、実際にはLubuntuは軽量です。 磨きをかけたい場合、またはシステムリソースを少し節約できる場合

続きを読む

Java SEのWebサービス、パート2:SOAPWebサービスの作成

JAX-WSはSOAPベースのWebサービスをサポートしています。Java SE Webサービスに関するこの4部構成のシリーズのパート2は、SOAPベースのユニット変換Webサービスを定義し、デフォルトの軽量HTTPサーバー(パート1で説明)を介してこのWebサービスをローカルで構築および検証し、サービスのWSDLドキュメントを解釈します。 、および単純なクライアントからサービスにアクセスします。 単位変換Webサービスの定義 私がUCと名付けた単位変換Webサービスは、センチメートルとインチの間、および華氏と摂氏の間で変換するための4つの関数で構成されています。この例は単一のJavaクラスとして設計することもできますが、JavaインターフェースおよびJavaクラスとして設計することにより、ベストプラクティスに従うことを選択しました。リスト1は、WebサービスのUCインターフェースを示しています。 リスト1.UCWebサービスのサービスエンドポイントインターフェイス package ca.javajeff.uc; import javax.jws.WebMethod; import javax.jws.WebService; @WebService public interface UC { @WebMethod double c2f(double degrees); @Web

続きを読む

キャッシュでRedisがMemcachedに勝る理由

MemcachedまたはRedis?これは、最新のデータベース駆動型Webアプリケーションからより多くのパフォーマンスを引き出すことについての議論で、ほとんど常に発生する質問です。パフォーマンスを改善する必要がある場合、多くの場合、キャッシュが最初のステップであり、MemcachedまたはRedisが最初に使用する場所です。 これらの有名なキャッシュエンジンには多くの類似点がありますが、重要な違いもあります。2つの中でより新しく、より用途の広いRedisは、ほとんどの場合、優れた選択肢です。 キャッシュ用のRedisとMemcached 類似点から始めましょう。 MemcachedとRedisはどちらも、メモリ内のKey-Valueデータストアとして機能しますが、Redisはデータ構造ストアとしてより正確に記述されています。 MemcachedとRedisはどちらもデータ管理ソリューションのNoSQLファミリーに属しており、どちらもKey-Valueデータモデルに基づいています。どちらもすべてのデータをRAMに保持するため、もちろんキャッシュレイヤーとして非常に便利です。パフォーマンスの点でも、2つのデータストアは非常に類似しており、スループットと遅延に関してほぼ同じ特性(およびメトリック)を示します。 MemcachedとRedisはどちらも成熟しており、非常に人気のあるオー

続きを読む

SiriをAndroidデバイスにインストールする方法

私はSamsungGalaxy S II Androidスマートフォンには満足していますが、Siriの羨望の悪いケースもあります。私も、「会議を3から4に変更」などの自然言語の要求に対応する「パーソナルアシスタント」が欲しいです。そして、「Siri for Android」の何百万ものグーグル検索結果が証明しているように、私は一人ではないと確信しています。 AndroidスマートフォンでSiriのようなエクスペリエンスを作成できますか?正確には、自由形式の自然言語を使用して同様に幅広いリクエストを処理できる単一のアプリがOSに組み込まれているわけではありません。ただし、Siriの機能のかなりの部分を取得することは可能です。ただし、iPhone 4Sユーザーとは異なり、Androidデバイスでさまざまな音声コマンドを発行する場合は、いくつかの異なるアプリをまとめる必要があります。 [モバイルデバイスに最適なアプリを入手する:最高のiPadオフィスアプリ、最高のiPad専門ビジネスアプリ、最高のiPhoneオフィスアプリ、最高のiPhone専門アプリ、最高のAndroidオフィスアプリ、最高のAndroid専門アプリを選びます。| iPad、iPhone、Android、BlackBerry、およびその他のモバイルデバイスを管理する方法については、の20ページのモバイル管理ディープダイ

続きを読む

Java開発者のための関数型プログラミング、パート1

Java 8は、Java開発者にラムダ式を使用した関数型プログラミングを紹介しました。このJavaリリースは、Javaプログラミングについて、命令型のオブジェクト指向の観点からのみ考えるだけではもはや十分ではないことを開発者に効果的に通知しました。Java開発者は、宣言型関数型パラダイムを使用して考え、コーディングできる必要もあります。 このチュートリアルでは、関数型プログラミングの基本について説明します。用語から始めて、関数型プログラミングの概念を掘り下げます。最後に、5つの関数型プログラミング手法を紹介します。これらのセクションのコード例では、純粋関数、高階関数、遅延評価、クロージャ、およびカリー化を開始できます。 関数型プログラミングは増加しています 米国電気電子学会(IEEE)は、2018年の上位25のプログラミング言語に関数型プログラミング言語を含めました。GoogleTrendsは現在、関数型プログラミングをオブジェクト指向プログラミングよりも人気があるとランク付けしています。 明らかに、関数型プログラミングは無視できませんが、なぜそれがより一般的になっているのですか?特に、関数型プログラミングを使用すると、プログラムの正当性を簡単に検証できます。また、並行プログラムの作成を簡素化します。同時実行(または並列処理)は、アプリケーションのパフォーマンスを向上させるため

続きを読む

OOPでの関連付け、集約、および構成の説明

統一モデリング言語(UML)は、オブジェクト指向システムをモデリングするための事実上の標準です。UMLには、関連付け、集約、構成、依存関係、継承の5種類の関係があります。この記事では、これらの概念の最初の3つについて説明し、残りの概念は別のブログ投稿に残します。 オブジェクト指向プログラミングにおける関連 アソシエーションは、他の点では無関係なオブジェクト間の意味的に弱い関係(意味的な依存関係)です。アソシエーションは、2つ以上のオブジェクト間の「使用」関係であり、オブジェクトには独自の存続期間があり、所有者は存在しません。 例として、医師と患者の関係を想像してみてください。医師は複数の患者と関連付けることができます。同時に、1人の患者が治療または相談のために複数の医師を訪問することができます。これらのオブジェクトにはそれぞれ独自のライフサイクルがあり、「所有者」や親は存在しません。関連付け関係の一部であるオブジェクトは、個別に作成および破棄できます。 UMLでは、関連付け関係は1つの矢印で表されます。アソシエーション関係は、1対1、1対多、または多対多(カーディナリティとも呼ばれます)として表すことができます。基本的に、2つ以上のオブジェクト間の関連付け関係は、1つのオブジェクトが別のオブジェクトにメッセージを送信できるように、それらの間の通信パス(リンクとも呼ばれる)を示し

続きを読む

Ubuntu18.04へのOracleJava SE11のインストール

この記事は、現在の長期サポート(LTS)JavaバージョンであるJava11をインストールするUbuntuLinuxユーザー向けのクイックガイドです。コードベースをJava11に移行する場合を簡単に説明し、Ubuntuコマンドラインを使用してOracle JDK11をインストールする手順を説明します。 これは、Java 11をインストールするUbuntuユーザー向けのクイックガイドであることに注意してください。Java11の機能や移行の問題については、他の場所で十分に説明されているので、あまり深く掘り下げません。 Java11に移行する場合 2014年3月にリリースされたJava8は、Java開発へのより現代的なアプローチを約束しました。この傾向は2017年も続き、Oracleがより速い開発リズムを発表し、以前のリリース間でJavaSEが停滞することを可能にしていたオールオアナッシングアプローチを破棄しました。 長期サポートが予定されているJavaリリースは少ないため、注意を払うことが重要です。Oracleに関する限り、非常に愛されているJava 8はすでにゴミ箱に入っており、Java9とJava10も同様です。これらのバージョンは引き続き使用できますが、積極的に更新またはサポートされていません。 [参照:Ubuntu Linux18.10「CosmicCuttlefish」

続きを読む

Julia vs. Python:データサイエンスに最適なのはどれですか?

Pythonがカバーする多くのユースケースの中で、データ分析はおそらく最大かつ最も重要になっています。Pythonエコシステムには、科学計算とデータ分析の作業を迅速かつ便利にするライブラリ、ツール、およびアプリケーションがロードされています。 しかし、特に「科学計算、機械学習、データマイニング、大規模線形代数、分散並列計算」を目的としたJulia言語の背後にいる開発者にとって、Pythonは十分に高速でも便利でもありません。Juliaは、科学者やデータアナリストに、迅速で便利な開発だけでなく、驚異的な実行速度を提供することを目指しています。  Julia言語とは何ですか? Juliaは、2009年に4人のチームによって作成され、2012年に一般に公開されました。これは、Pythonや、科学計算やデータ処理に使用されるその他の言語やアプリケーションの欠点に対処することを目的としています。「私たちは貪欲です」と彼らは書いた。彼らはもっと欲しかった:  リベラルなライセンスを備えたオープンソースの言語が必要です。Rubyのダイナミズムを備えたCのスピードが必要です。Lispのような真のマクロを持ちながら、Matlabのような明白で馴染みのある数学表記を備えた同像性の言語が必要です。Pythonのように一般的なプログラミングに使用でき、Rのように統計が簡単で、Per

続きを読む

機械学習とは何ですか?データから得られるインテリジェンス

機械学習の定義 機械学習は、データからモデルを自動的に作成するためのメソッドまたはアルゴリズムを含む人工知能のブランチです。明示的なルールに従ってタスクを実行するシステムとは異なり、機械学習システムは経験から学習します。ルールベースのシステムは毎回同じ方法でタスクを実行しますが(良くも悪くも)、アルゴリズムをより多くのデータに公開することで、トレーニングを通じて機械学習システムのパフォーマンスを向上させることができます。 機械学習アルゴリズムは、多くの場合に分けている教師(トレーニングデータが答えでタグ付けされている)と、教師なし(存在する可能性がある任意のラベルが学習アルゴリズムには表示されません)。教師あり機械学習の問題は、分類(住宅ローンの支払いを逃す確率などの非数値の回答を予測する)と回帰(マンハッタンストアで来月販売されるウィジェットの数などの数値の回答を予測する)にさらに分けられます。 教師なし学習はさらに、クラスタリング(ランニングシューズ、ウォーキングシューズ、ドレスシューズなどの類似したオブジェクトのグループの検索)、関連付け(コーヒーやクリームなどのオブジェクトの一般的なシーケンスの検索)、および次元削減(投影、特徴選択)に分けられます。、および特徴抽出)。 機械学習の応用 機械学習のアプリケーションについては日常的に耳にしますが、すべてが非合金の成功であ

続きを読む

Javaをゼロから学ぶ

それで、あなたはJavaでプログラムしたいですか?それは素晴らしいことです、そしてあなたは正しい場所に来ました。Javaの101シリーズは、基本から始まり、あなたが生産性のJava開発者になるために知っておく必要があるすべてのコアな概念をカバーし、Javaプログラミングへのセルフガイド紹介しています。このシリーズは技術的なものであり、概念を理解するのに役立つコード例がたくさんあります。Javaだけでなく、プログラミングの経験があることを前提としています。 この最初の記事では、Javaプラットフォームを紹介し、Java SE、Java EE、およびJavaMEの3つのエディションの違いについて説明します。また、JavaアプリケーションのデプロイにおけるJava仮想マシン(JVM)の役割についても学習します。Javaプログラムを開発して実行できるように、システムにJava Development Kit(JDK)をセットアップするのを手伝って、典型的なJavaアプリケーションのアーキテクチャーを始めましょう。最後に、単純なJavaアプリをコンパイルして実行する方法を学習します。 Java12および新しいJShell用に更新 このシリーズはJava12用に更新されており、Javajshellを学習してJavaコードのプロトタイピングを行うためのインタラクティブなツールである新しいものの

続きを読む

レビュー:VirtualBox5.0とVMwareWorkstation 11

OracleVirtualBoxとVMwareWorkstationは、数年前からそれを公開しています。VirtualBoxはリングの「フリーでオープンソース」のコーナーを占めていますが、VMwareWorkstationは独自の商用アプリケーションです。価格については、ワークステーションは一般的に機能とパフォーマンスをリードしていると同時に、他のVMware仮想化ラインとの緊密な統合も提供しています。 ただし、基本的に、2つの製品は非常に似ています。どちらもWindowsまたはLinuxホストで実行され、Windows、Linux、およびUnixの幅広いゲストをサポートします。 (VirtualBoxはOS Xでも動作しますが、VMwareはFusion for Macを提供しています。)VirtualBoxとWorkstationの両方で、大規模なVMと複雑な仮想ネットワークを作成できます。どちらも、保存できる限り多くのVMのスナップショットを作成でき、VM間を移動するためのグラフィカルなタイムラインを提供します。どちらもリンククローンをサポートしており、VMのコピーをスナップショットに基づいてディスクスペースを節約します。 つまり、VirtualBoxとWorkstationは、デスクトップ上で仮想マシンを実行するための最も有能な方法です。バージョン5.0では、Virtual

続きを読む

Java 9はここにあります:あなたが知る必要があるすべて

Java 9(正式にはJava Platform Standard Editionバージョン9)がついに登場し、開発者はそのJava Development Kit(JDK)をダウンロードできるようになりました。 物議を醸す新機能がいくつかありますが、古いスタイルのJava配信の最後の行でもあります。 Java 9JDKをダウンロードする場所 Oracleは、開発者がダウンロードできるようにJava SE 9JDKとドキュメントを投稿しています。 Java9の主な新機能 Java SE 8のほぼ3年後にデビューした、Java SE 9には、いくつかの重要なアーキテクチャの変更と、多くの改善があります。 Java9のモジュール性はゲームチェンジャーです Project Jigsawに基づく新しい、物議を醸すモジュール性機能は、より保守的なショップがモジュール性が成熟するのを待つことを決定したとしても、JDK9が今提供しなければならないものを見たい最先端のJavaショップの興味をそそるに違いありません。 モジュール性(Java Platform Module Systemの形式)は、JDKをモジュールのセットに分割して、実行時、コンパイル時、またはビルド時に結合します。モジュール性は「推移的な」変更と呼ばれ、モジュール間の依存関係を理解できるようにします。 Java 9の

続きを読む

Rでグループごとに数える方法

複数のグループによるカウント(クロス集計レポートと呼ばれることもあります)は、世論調査から医療検査に至るまでのデータを調べるのに便利な方法です。たとえば、人々は性別や年齢層ごとにどのように投票しましたか?RとPythonの両方を使用するソフトウェア開発者の数は男性と女性ですか? Rのカテゴリでこの種のカウントを行う方法はたくさんあります。ここでは、私のお気に入りのいくつかを共有したいと思います。 この記事のデモでは、Stack Overflow Developers調査のサブセットを使用します。この調査では、給与から使用されているテクノロジーに至るまで、数十のトピックについて開発者を調査します。使用する言語、性別、およびそれらが趣味としてコーディングされているかどうかの列を使用して、それを絞り込みます。また、開発者がR、Python、またはその両方を使用して報告したかどうかについて、独自のLanguageGroup列を追加しました。 フォローしたい場合は、この記事の最後のページに、私が使用しているのと同じデータセットを取得するためにデータをダウンロードして整理する方法についての説明があります。 データには、調査回答ごとに1つの行があり、4つの列はすべて文字です。 str(mydata) 'data.frame':83379obs。4つの変数の:$ Gender:chr "Ma

続きを読む

Web開発者を苛立たせるものは何ですか?ウェブブラウザー

2019年の後半にMozillaがウェブプラットフォーム、ツール、機能の経験について調査した開発者はほとんど満足していましたが、いくつかの欠点、特にブラウザサポートの問題を挙げていました。 全体として、59.8%がウェブに満足していると報告し、16.3%は非常に満足しています。6.8%だけが不満で、2.2%が非常に不満でした。これらの調査結果は、世界中の28,000人を超えるWeb開発者および設計者からのインプットを利用したMDN Web DNA(Developer Needs Assessment)レポート2019の一部でした。 MDN Web DNA Report 2019は、Webプラットフォームの将来を形作ることを目的とした、Web開発者とデザイナーのニー

続きを読む

より安全でクリーンなコードのために定数型を使用する

このチュートリアルでは、EricArmstrongの「Javaで列挙型定数を作成する」で説明されている列挙型定数の概念を拡張します。列挙型定数に関連する概念に精通していることを前提としているため、この記事に没頭する前にその記事を読むことを強くお勧めします。Ericが提示したサンプルコードのいくつかを拡張します。 定数の概念 列挙型定数を扱う際に、記事の最後で概念の列挙型部分について説明します。今のところ、私たちは一定の側面に焦点を当てます。定数は基本的に、値を変更できない変数です。 C / C ++では、キーワードconstを使用してこれらの定数変数を宣言します。 Javaでは、キーワードを使用しますfinal。ただし、ここで紹介するツールは単なるプリミティブ変数ではありません。これは実際のオブジェクトインスタンスです。オブジェクトインスタンスは不変で変更できません。内部状態は変更できません。これは、クラスが1つのインスタンスしか持てないシングルトンパターンに似ています。ただし、この場合、クラスには、限定された事前定義されたインスタンスのセットしか含まれない場合があります。 定数を使用する主な理由は、明快さと安全性です。たとえば、次のコードは自明ではありません。 public void setColor(int x){...} public void someMethod(){

続きを読む

JavaScriptとフォームの使用

Javascriptは多くの帽子をかぶっています。JavaScriptを使用して特殊効果を作成できます。JavaScriptを使用すると、その意思決定機能を活用してHTMLページを「よりスマート」にすることができます。また、JavaScriptを使用してHTMLフォームを拡張できます。この最後のアプリケーションは特に重要です。JavaScriptが身につけることができるすべての帽子の中で、そのフォーム処理機能は最も求められ、使用されています。 Webパブリッシャーの心には、CGIという3つの文字ほど恐れを感じるものはありません。CGI(Common Gateway Interfaceの略)は、クライアント(ブラウザー)からサーバーにデータを安全に転送するためのメカニズムです。これは通常、HTMLフォームからサーバーにデータを転送するために使用されます。 JavaScriptを使用すると、サーバーを呼び出さずに単純なフォームを処理できます。また、フォームをCGIプログラムに送信する必要がある場合は、入力を検証してユーザーがすべてのiにドットを付けていることを確認するなど、JavaScriptにすべての予備要件を処理させることができます。このコラムでは、JavaScriptのフォームオブジェクトの使用方法、フォームコンテンツの読み取りと設定の方法、フォームコントロールを操作してJava

続きを読む

ゲッターとセッターのメソッドが悪である理由

「isevil」シリーズを始めるつもりはありませんでしたが、先月のコラム「Why extends Is Evil」で、get / setメソッドを避けるべきだと言った理由を説明するように数人の読者から尋ねられました。 ゲッター/セッターメソッドはJavaでは一般的ですが、特にオブジェクト指向(OO)ではありません。実際、コードの保守性を損なう可能性があります。さらに、多数のゲッターおよびセッターメソッドの存在は、プログラムがオブジェクト指向の観点から必ずしも適切に設計されているとは限らないことを示す危険信号です。 この記事では、ゲッターとセッターを使用すべきでない理由(およびそれらを使用できる場合)について説明し、ゲッター/セッターの精神から抜け出すのに役立つ設計方法を提案します。 デザインの性質について 別のデザイン関連のコラム(挑発的なタイトルもあります)を始める前に、いくつかのことを明確にしておきたいと思います。 先月のコラム「WhyextendsIs Evil」(記事の最後のページのトークバックを参照)からの読者のコメントに驚かされました。一部の人々はextends、2つの概念が同等であるかのように、問題があるという理由だけでオブジェクト指向が悪いと私が主張したと信じていました。それは確かに私が言ったと思っていたものではないので、いくつかのメタ問題を明確にしましょう。

続きを読む

StringBufferとString

Javaが提供StringBufferしてString授業をし、Stringクラスを変更することはできません文字列を操作するために使用されます。簡単に言うと、型のオブジェクトStringは読み取り専用で不変です。このStringBufferクラスは、変更可能な文字を表すために使用されます。 これら2つのクラスのパフォーマンスの大きな違いは、単純な連結を実行する場合StringBufferよりも高速であるということですString。でString操作コード、文字列が日常連結されています。Stringクラスを使用すると、連結は通常、次のように実行されます。 String str = new String( "Stanford"); str + = "Lost !!"; StringBuffer同じ連結を実行するために使用する場合は、次のようなコードが必要になります。 StringBuffer str = new StringBuffer( "Stanford"); str.append( "Lost !!"); 開発者は通常、上記の最初の例の方が効率的であると考えています。これは、append連結の方法を使用する2番目の例は、+演算子を使用して2つのStringオブジェクトを連結する最初の例よりもコストがかかると考えているためです。 +オペレータは無実表示されますが、生成された

続きを読む

Javaでアサーションを使用する方法

実行時に正しく機能するプログラムを作成するのは難しい場合があります。これは、実行時にコードがどのように動作するかについての仮定が間違っていることが多いためです。Javaのアサーション機能を使用することは、プログラミングロジックが適切であることを確認する1つの方法です。 このチュートリアルでは、Javaアサーションを紹介します。最初に、アサーションとは何か、およびそれらをコードで指定して使用する方法を学習します。次に、アサーションを使用して前提条件と事後条件を適用する方法を説明します。最後に、アサーションと例外を比較し、コードで両方が必要な理由を確認します。ダウンロードコードを入手するこのチュートリアルの例のソースコードをダウンロードします。JavaWorld用にJeffFriesenによって作成されました。 Javaアサーションとは何ですか? JDK 1.4より前は、開発者はコメントを使用して、プログラムの正当性に関する仮定を文書化することがよくありました。ただし、コメントは、仮定をテストおよびデバッグするためのメカニズムとしては役に立ちません。コンパイラはコメントを無視するため、バグ検出にコメントを使用する方法はありません。また、開発者はコードを変更するときにコメントを更新しないことがよくあります。   JDK 1.4では、コードに関する仮定をテストおよ

続きを読む

EJBとは何ですか?EnterpriseJavaBeansの進化

Enterprise JavaBeans(EJB)は、Javaプラットフォーム上で大規模な分散ビジネスアプリケーションを開発するための仕様です。EJB1.0は1998年にリリースされました。最新のリリースであるEJB3.2.3がJakartaEEに含まれるように採用され、Jakarta EnterpriseBeansに名前が変更されます。 EJBアーキテクチャ EJBアーキテクチャは、エンタープライズBean(EJB)、EJBコンテナ、およびJavaアプリケーションサーバーの3つの主要コンポーネントで構成されています。EJBはEJBコンテナ内で実行され、EJBコンテナはJavaアプリケーションサーバー内で実行されます。 EJBには、セッションBeanとメッセージ駆動型Beanの2種類があります。 セッションBeanはクライアントによって呼び出され、トランザクションやリソース管理などのエンタープライズ機能をクライアントがプログラムで利用できるようにします。 メッセージ駆動型Beanもエンタープライズ機能をカプセル化して提供しますが、非同期でイベント駆動型です。メッセージ駆動型Beanはイベントをリッスンして応答し、クライアントから呼び出すことはできません。 EJBシステムで永続性を提供するために使用されると、エンティティBeanはJava PersistenceAPI

続きを読む

Javaでのクラスとオブジェクトの初期化

Javaのクラスとオブジェクトは、使用する前に初期化する必要があります。クラスがロードされるときにクラスフィールドがデフォルト値に初期化され、オブジェクトがコンストラクターを介して初期化されることを以前に学びましたが、初期化にはまだまだあります。この記事では、クラスとオブジェクトを初期化するためのJavaのすべての機能を紹介します。ダウンロードコードを取得するこのチュートリアルのサンプルアプリケーションのソースコードをダウンロードします。JavaWorld用にJeffFriesenによって作成されました。 Javaクラスを初期化する方法 クラス初期化に対するJavaのサポートについて説明する前に、Javaクラスを初期化する手順を要約してみましょう。リスト1を検討してください。 リスト1.クラスフィールドをデフォルト値に初期化する class SomeClass { static boolean b; static byte by; static char c; static double d; static float f; static int i; static long l; static short s; static String st; } リスト1はクラスを宣言していSomeClassます。このクラスは、種類の9つのフィールドを宣言しboolean、byte、

続きを読む

効果的なJavaNullPointerException処理

NullPointerExceptionが何であるかを直接学ぶのに、Java開発の経験はそれほど必要ありません。実際、ある人は、Java開発者が犯す最大の間違いとしてこれに対処することを強調しています。以前、String.value(Object)を使用して不要なNullPointerExceptionsを減らすことについてブログを書きました。JDK 1.0以降に使用されてきたこの一般的なタイプのRuntimeExceptionの発生を削減または排除するために使用できる、他のいくつかの簡単な手法があります。このブログ投稿は、これらのテクニックの中で最も人気のあるもののいくつかを集めて要約しています。 使用する前に、各オブジェクトのNullを確認してください NullPointerExceptionを回避する最も確実な方法は、オブジェクトのフィールドまたはメソッドの1つ

続きを読む

Kubernetesとは何ですか?次のアプリケーションプラットフォーム

Kubernetesは、コンテナオーケストレーション、つまり、コンテナと呼ばれる複数の大部分が自己完結型のランタイムから構築されたアプリケーションの管理に人気のあるオープンソースプラットフォームです。2013年にDockerコンテナ化プロジェクトが開始されて以来、コンテナの人気はますます高まっていますが、大規模な分散コンテナ化アプリケーションの調整はますます困難になる可能性があります。コンテナ化されたアプリケーションを大規模に管理しやすくすることで、Kubernetesはコンテナ革命の重要な部分になりました。 コンテナオーケストレーションとは何ですか? コンテナは、VMのような関心の分離をサポートしますが、オーバーヘッドがはるかに少なく、柔軟性がはるかに高くなります。その結果、コンテナは、ソフトウェアの開発、展開、および保守についての人々の考え方を一新しました。コンテナ化されたアーキテクチャでは、アプリケーションを構成するさまざまなサービスが個別のコンテナにパッケージ化され、物理マシンまたは仮想マシンのクラスタ全体に展開されます。しかし、これにより、コンテナーオーケストレーション(コンテナーベースのアプリケーションの展開、管理、スケーリング、ネットワーキング、および可用性を自動化するツール)が必要になります。 Kubernetesとは何ですか? Kubernetesはオープンソ

続きを読む

Javaポリモーフィズムとそのタイプ

ポリモーフィズムとは、いくつかのエンティティがさまざまな形で発生する能力を指します。それは、幼虫から蛹、成虫へと変化する蝶によって一般的に表されます。ポリモーフィズムは、さまざまなオペランド、引数、およびオブジェクトへの単一のインターフェイスを作成できるモデリング手法として、プログラミング言語にも存在します。Javaポリモーフィズムにより、コードがより簡潔になり、保守が容易になります。 このチュートリアルはサブタイプのポリモーフィズムに焦点を当てていますが、知っておくべき他のタイプがいくつかあります。まず、4種類すべてのポリモーフィズムの概要から始めます。ダウンロードコードを取得するこのチュートリアルのサンプルアプリケーションのソースコードをダウンロードします。JavaWorld用にJeffFriesenによって作成されました。 Javaのポリモーフィズムの種類 Javaには4つのタイプのポリモーフィズムがあります。 強制は、暗黙的な型変換を通じて複数の型を処理する操作です。たとえば、整数を別の整数で除算したり、浮動小数点値を別の浮動小数点値で除算したりします。一方のオペランドが整数で、もう一方のオペランドが浮動小数点値の場合、コンパイラーは、型エラーを防ぐために整数を浮動小数点値に強制(暗黙的に変換)します。(整数オペランドと浮動小数点オペランドをサポートする除算演算は

続きを読む

Windows10のアップグレードをロールバックする方法

何億人ものWindows10ユーザーが間違っていることはあり得ません。Win10のアップグレードを試した人々から、壊れたドライバー、互換性のないプログラム、不慣れ、詮索の恐れ、Win10の将来への疑問など、さまざまな理由で、古き良きWindows7または8.1に戻りたいと毎日聞いています。 。 Microsoftのツールと油そそがれた技術を使用してアップグレードを実行した場合、ロールバックは簡単です。運用用語:「すべき」。残念ながら、多くの人はWin10が片道旅行であることに気づきます-時には非常に正当な理由があります。 ここでは、アップグレード中、ロールバック中の予想される内容の詳細を、頻繁に問題が発生する原因のリストと、往復の負担を軽減するた

続きを読む

Javaのデータ構造とアルゴリズム、パート4:単一リンクリスト

このチュートリアルシリーズのパート3で紹介した配列と同様に、リンクリストは、より複雑なデータ構造の基礎となる基本的なデータ構造カテゴリです。ただし、要素のシーケンスとは異なり、リンクリストはノードのシーケンスであり、各ノードはシーケンス内の前のノードと次のノードにリンクされます。ノードは自己参照クラスから作成されたオブジェクトであり、自己参照クラスには、参照タイプがクラス名であるフィールドが少なくとも1つあることを思い出してください。リンクリスト内のノードは、ノード参照を介してリンクされます。次に例を示します。 class Employee { private int empno; private String name; private double salary; public Employee next; // Other members. } この例でEmployeeは、nextフィールドのタイプがであるため、は自己参照クラスEmployeeです。このフィールドは、そのクラスの別のオブジェクト(この場合は別のオブジェクト)への参照を格納できるため、リンクフィールドの例ですEmployee。 このチュートリアルでは、Javaプログラミングにおける単一リンクリストの詳細を紹介します。単一リンクリストの作成、単一リンクリストへのノードの挿入、単一リンクリストからのノードの削除、

続きを読む

Dockerとコンテナーを使用する理由

1981年に出版された本、  Nailing Jelly to a Treeは、ソフトウェアを「曖昧でしっかりと把握するのが難しい」と説明しています。それは1981年に真実であり、それ以来40年近くも真実です。ソフトウェアは、購入したアプリケーションであろうと、自分で作成したアプリケーションであろうと、展開、管理、実行が困難なままです。 Dockerコンテナーは、ソフトウェアを把握する方法を提供します。Dockerを使用して、アプリケーションのデプロイとランタイムの問題(ネットワーク上での公開方法、ストレージとメモリとI / Oの使用の管理方法、アクセス許可の制御方法)が処理されるようにアプリケーションをラップできます。アプリケーション自体の外部で、すべての「コンテナ化された」アプリ間で一貫した方法で。Dockerコンテナーは、DockerランタイムがインストールされているOS互換ホスト(LinuxまたはWindows)で実行できます。 Dockerには、この便利なカプセル化、分離、移植性、および制御以外にも、多くの利点があります。Dockerコンテナーは小さい(メガバイト)。彼らは即座に始まります。それらには、バージョン管理とコンポーネントの再利用のための独自の組み込みメカニズムがあります。これらは、パブリックDockerHubまたはプライベートリポジトリを介して簡単に

続きを読む

バイトコードの基本

「UnderTheHood」の別の記事へようこそ。このコラムでは、Java開発者に、実行中のJavaプログラムの下で何が起こっているかを垣間見ることができます。今月の記事では、Java仮想マシン(JVM)のバイトコード命令セットについて最初に説明します。この記事では、バイトコードによって操作されるプリミティブ型、型間で変換されるバイトコード、およびスタック上で動作するバイトコードについて説明します。以降の記事では、バイトコードファミリの他のメンバーについて説明します。 バイトコード形式 バイトコードは、Java仮想マシンの機械語です。 JVMがクラスファイルをロードすると、クラス内のメソッドごとに1つのバイトコードストリームを取得します。バイトコードストリームは、JVMのメソッド領域に格納されます。メソッドのバイトコードは、プログラムの実行中にそのメソッドが呼び出されたときに実行されます。これらは、解釈、ジャストインタイムコンパイル、または特定のJVMの設計者が選択したその他の手法によって実行できます。 メソッドのバイトコードストリームは、Java仮想マシンの一連の命令です。各命令は、1バイトのオペコードとそれに続く0個以上のオペランドで構成されます。オペコードは、実行するアクションを示します。JVMがアクションを実行する前にさらに情報が必要な場合、その情報は、オペコードの直後に

続きを読む

Mavenとは何ですか?Javaのビルドと依存関係の管理

Apache Mavenは、Java開発の基礎であり、Javaで最も使用されているビルド管理ツールです。Mavenの合理化されたXMLベースの構成モデルにより、開発者はJavaベースのプロジェクトの概要を迅速に記述または把握できるため、新しいプロジェクトの開始と共有が簡単になります。Mavenは、テスト駆動開発、長期プロジェクトメンテナンスもサポートしており、その宣言型構成と幅広いプラグインにより、CI / CDの人気のあるオプションとなっています。この記事は、Maven POMとディレクトリ構造、および最初のMavenプロジェクトを構築するためのコマンドを含むMavenの簡単な紹介です。 この記事の執筆時点での最新のMavenリリースはMaven3.6.3であることに注意してください。 Maven vs Ant and Gradle MavenはJavaエコシステムの唯一のビルドツールではありませんが、最も人気のあるツールです。以前の世代のXMLベースの構成ツールであるAntには、Mavenの標準化された規則ベースのプラクティスと依存関係管理がありませんが、Mavenにはない柔軟性を提供します。Gradleは、(Mavenのリポジトリを使用して)Mavenエコシステム上で実行される新しいツールですが、構成にGroovyベースまたはKotlinベースのDSLを使用することをサポー

続きを読む

Javaでの継承、パート1:extendsキーワード

Javaは、継承と構成を通じてクラスの再利用をサポートします。この2部構成のチュートリアルでは、Javaプログラムで継承を使用する方法を説明します。パート1では、extendsキーワードを使用して親クラスから子クラスを派生させ、親クラスのコンストラクターとメソッドを呼び出し、メソッドをオーバーライドする方法を学習します。パート2java.lang.Objectでは、他のすべてのクラスが継承するJavaのスーパークラスであるツアーを行います。 継承についての学習を完了するには、コンポジションと継承をいつ使用するかを説明しているJavaのヒントを確認してください。コンポジションが継承を補完する重要な理由と、それを使用してJavaプログラムでのカプセル化の問題を防ぐ方法を学習します。ダウンロードコードを取得するこのチュートリアルのサンプルアプリケーションのソースコードをダウンロードします。JavaWorld用にJeffFriesenによって作成されました。 Javaの継承:2つの例 継承は、ソフトウェア開発者がi

続きを読む

GitHubは、プライベートリポジトリをチームに無料で提供します

GitHubは、無制限の共同編集者がいるプライベートリポジトリをすべてのGitHubアカウントで利用できるようにしました。つまり、コア機能はチームを含むすべての人が無料で利用できるようになりました。 GitHubが4月14日に発表される前は、GitHubをプライベート開発に使用する場合、組織は有料プランに登録する必要がありました。新しい無料プランでは、チームは、月に2,000のプライベートリポジトリアクションと500MBのプライベートリポジトリパッケージストレージに加えて、任意の数のパブリックまたはプライベートリポジトリを持つことができます。 GitHubの新しい計画の詳細は次のとおりです。 開発者に無制限のプライベートリポジトリを提供するために2019年1月に導入されたGitHubFreeは、チームですぐに利用可能であり、無制限のパブリックまたはプライベートリポジトリを備えています。GitHubFreeユーザーはコミュニティサポートを受けます。 Team for Open Sourceを使用していた組織は、GitHubFreeを利用できるようになりました。 個々の開発者向けのGitHubFreeには、無制限の共同編集者が含まれるようになりました。 GitHubチームには、プライベートリポジトリ用に月額3,000のアクションが含まれます。 ただし、GitHubが提

続きを読む

レビュー:6つのPythonIDEがマットになります

言語の人気と成功を測定するために使用できるすべてのメトリックの中で、確実な要因の1つは、その言語で使用できる開発環境の数です。過去数年間のPythonの人気の高まりは、一般的なプログラマーと、科学的作業や分析プログラミングなどのタスクにPythonを使用する人々の両方を対象としたツールを備えたIDEサポートの強力な波をもたらしました。 Pythonをサポートするこれらの6つのIDEは、さまざまなユースケースをカバーしています。一部は、アドオンまたはPython固有の拡張機能を備えた別の製品の再パッケージ化を通じてPythonをサポートする多言語IDEです。それぞれがPython開発者のわずかに異なる対象者に利益をもたらしますが、多くはユニバーサルソリューションとして役立つよう努めています。 今日のIDEの多くは、特定の言語での開発を促進するために徹底的に作成されたアプリではなく、特定の言語とタスク用のプラグインを備えたフレームワークです。そのために、IDEの選択は、同じファミリの別のIDEを使用した経験があるかどうかによって決まる場合があります。 関連ビデオ:Pythonがプログラミングを簡単にする理由 そのような経験がない人にとって、PyCharmは始めるのに最適な場所の1つです。それは新参者に優しいですが、その機能セットに悩まされることはありません。実際、ここで紹介するすべ

続きを読む

Swift vs. Objective-C:将来がSwiftを支持する10の理由

プログラミング言語は簡単に死ぬことはありませんが、衰退するパラダイムに固執する開発ショップは死にます。モバイルデバイス用のアプリを開発していて、Swiftを調査していない場合は、次の点に注意してください。Mac、iPhone、iPad、Apple Watch、および今後のデバイス用のアプリの開発に関しては、SwiftはObjective-Cに取って代わるだけではありません。ただし、Appleプラットフォームでの組み込みプログラミングのCも置き換えられます。 いくつかの重要な機能のおかげで、Swiftは、没入型で応答性の高い、消費者向けのアプリケーションを今後何年にもわたって作成するための事実上のプログラミング言語になる可能性があります。 AppleはSwiftに大きな目標を持っているようだ。コンパイラのパフォーマンスと開発用の言語を最適化し、SwiftのドキュメントでSwiftが「「hello、world」からオペレーティングシステム全体に拡張できるように設計されている」ことをほのめかしています。Appleはまだこの言語のすべての目標を表明していませんが、Xcode 6、Playgrounds、およびSwiftのリリースは、他の開発ツールチェーンよりもアプリ開発をより簡単で親しみやすいものにするというAppleの意図を示しています。 今すぐSwiftを使い始めて、ゲームを先取りす

続きを読む

Angular10.1の新機能

Angular10のフォローアップポイントリリースであるAngular10.1.0が9月2日にリリースされ、新しいメッセージ抽出ツールとともにコンパイラとルーターのパフォーマンスが向上しました。  Angular 10は、6月24日に製品リリースとして一般提供されました。Googleが開発したTypeScriptベースのフレームワークへのメジャーアップグレードでは、新機能よりも品質、ツール、エコシステムの改善に重点が置かれています。 Angular 10は、以前のバージョンのAngularよりも小さくなっています。新機能には、Angular MaterialUIコンポーネントライブラリの新しい日付範囲ピッカーとCommonJSインポートの警告が含まれます。CommonJSのインポート警告は、CommonJSにパッケージ化された依存関係によってアプリケーションが大きくなり、速度が低下する可能性がある場合に開発者に警告し、開発者がECMAScriptモジュールバンドルを置き換えることができるようにします。 で新しいワークスペースを作成する際に加えて、オプションの厳しい設定がより厳密プロジェクトのセットアップを提供ng newを通じて、ng new --strict。このフラグを有効にすると、新しいプロジェクトが新しい設定で初期化され、保守性が向上し、バグをキャッチし、CLI

続きを読む

クラウドネイティブとは何ですか?ソフトウェアを開発するための現代的な方法

「クラウドネイティブ」という用語は、特にクラウドプロバイダーによって頻繁に使用されます。それだけでなく、独自の基盤もあります。それは、LinuxFoundationによって2015年に立ち上げられたCloudNative Computing Foundation(CNCF)です。 「クラウドネイティブ」の定義 一般的な使用法では、「クラウドネイティブ」は、クラウドコンピューティング配信モデルの利点を活用するアプリケーションを構築および実行するためのアプローチです。「クラウドネイティブ」とは、アプリケーションの作成方法と展開方法であり、場所ではありません。これは、アプリがオンプレミスのデータセンターではなく、パブリッククラウドに存在することを意味します。 CNCFは、「クラウドネイティブ」をもう少し狭く定義します。つまり、オープンソースソフトウェアスタックを使用してコンテナー化することを意味します。アプリの各部分は独自のコンテナーにパッケージ化され、動的に調整されるため、各部分はアクティブにスケジュールされ、リソースを最適化するように管理されます。使用率、およびアプリケーションの全体的な俊敏性と保守性を向上させるためのマイクロサービス指向。 「クラウドネイティブアプリは、最新のクラウドコンピューティングプラットフォームに必要な弾力性のある分散型の性質で実行するように特別に設計され

続きを読む

サーバーレスとは​​何ですか?サーバーレスコンピューティングの説明

開発者は、コードに関するビジネス上の問題を解決するために数え切れないほどの時間を費やしています。次に、運用チームは数え切れないほどの時間を費やす番です。まず、開発者が作成して利用可能なコンピューターで実行するコードを取得する方法を理解し、次にそれらのコンピューターがスムーズに動作することを確認します。第二の部分は本当に終わりのない仕事です。その部分を他の人に任せてみませんか? 過去20年間のITにおける多くの革新(仮想マシン、クラウドコンピューティング、コンテナー)は、コードが実行されている基盤となる物理マシンについてあまり考える必要がないようにすることに重点を置いてきました。サーバーレスコンピューティングは、この欲求を論理的な結論に導くますます人気のあるパラダイムです。サーバーレスコンピューティングでは、コードが実行されているハードウェアやOSについて何も知る必要はありません。これは、すべてサービスプロバイダーによって処理されるためです。 。 サーバーレスコンピューティングとは何ですか? サーバーレスコンピューティングはクラウドの実行モデルであり、クラウドプロバイダーは、特定のコードを実行するために必要なコンピューティングリソースとストレージのみを動的に割り当て、ユーザーに課金します。当然、関係するサーバーはまだありますが、それらのプロビジョニングとメンテナンスはプロバイダーに

続きを読む

すべてのPython開発者向けの24のPythonライブラリ

Pythonプログラミング言語が大成功を収めた正当な理由が必要ですか?ネイティブライブラリとサードパーティライブラリの両方で、Pythonで利用できるライブラリの膨大なコレクションを探すだけです。しかし、Pythonライブラリが非常に多いので、それに値するすべての注目を集めていないものがあるのも当然です。さらに、1つのドメインで独占的に作業するプログラマーは、他の種類の作業で利用できる機能について常に知っているとは限りません。 見落としているかもしれないが、間違いなく注目に値する24のPythonライブラリがあります。これらのgemは、ファイルシステムへのアクセス、データベースプログラミング、クラウドサービスの操作から、軽量のWebアプリの構築、GUIの作成、画像、電子書籍、Wordファイルの操作まで、あらゆる機能を簡素化します。よく知られているものもあれば、あまり知られていないものもありますが、これらのPythonライブラリはすべてツールボックスに配置する価値があります。 Apache Libcloud Libcloudの機能:単一の一貫性のある統合APIを介して複数のクラウドプロバイダーにアクセスします。 Libcloudを使用する理由:上記のApache Libcloudの説明で手をたたくことができない場合は、複数のクラウドでの作業を試していません。クラウドプロバイダーは

続きを読む

レビュー:Visual Studio2017はこれまでで最高です

2年前にVisualStudio 2015をレビューしたとき、MicrosoftのIDEはこれまでで最も複雑な製品になり、Microsoftは将来それを簡素化する必要があると思いました。私はある点で間違っていました。MicrosoftはVisualStudio 2017のいくつかの機能を廃止しましたが、さらに多くの機能を追加しました。しかし、確かに、Microsoftは、その機能を向上させたにもかかわらず、Visual Studio2017でよりシンプルで機敏なIDEを提供することに成功しました。 Windows CommunicationFoundationやWindowsWorkflowFoundationなどの複雑な新しいMicrosoft固有のテクノロジの導入に重点を置いた過去のバージョンのVisualStudioとは異なり、Visual Studio 2017はインストールと動作がより高速になり、より多くのプログラミング言語とプラットフォームをサポートし、開発者の生産性が向上し、適用されます。自然な方法でクロスプラットフォームのワークロードに。 Visual Studio 2015のほとんどのユーザーにとって、Visual Studio2017へのアップグレードは簡単です。その理由を探りましょう。 大きくて小さい いくつかの点で、Visual Studio 2017は

続きを読む

MySQLの10の重要なパフォーマンスのヒント

すべてのリレーショナルデータベースと同様に、MySQLは複雑な獣であることが判明する可能性があり、アプリケーションを急いで停止させ、ビジネスを停止させる可能性があります。 真実は、よくある間違いがほとんどのMySQLパフォーマンスの問題の根底にあるということです。MySQLサーバーが最高速度で動作し、安定した一貫したパフォーマンスを提供できるようにするには、ワークロードの微妙な点や構成トラップによって隠されることが多いこれらの間違いを排除することが重要です。 幸いなことに、多くのMySQLパフォーマンスの問題には同様の解決策があり、MySQLのトラブルシューティングと調整が管理可能なタスクになっています。 MySQLから優れたパフォーマンスを引き出すための10のヒントを次に示します。 MySQLパフォーマンスのヒント1:ワークロードのプロファイル サーバーがどのように時間を費やしているかを理解する最良の方法は、サーバーのワークロードをプロファイルすることです。ワークロードをプロファイリングすることで、さらに調整するために最もコストのかかるクエリを公開できます。ここで、時間は最も重要なメトリックです。サーバーに対してクエリを発行するときは、完了するまでの時間以外はほとんど気にしないからです。 ワークロードのプロファイルを作成する最良の方法は、MySQL EnterpriseM

続きを読む

Node.jsとは何ですか?JavaScriptランタイムの説明

スケーラビリティ、遅延、およびスループットは、Webサーバーの主要業績評価指標です。スケールアップおよびスケールアウト中にレイテンシーを低く、スループットを高く保つことは容易ではありません。Node.jsは、リクエストを処理するための「ノンブロッキング」アプローチを採用することで、低レイテンシと高スループットを実現するJavaScriptランタイム環境です。つまり、Node.jsは、I / O要求が返されるのを待つために時間やリソースを浪費しません。 Webサーバーを作成する従来のアプローチでは、着信要求または接続ごとに、サーバーは新しい実行スレッドを生成するか、要求を処理して応答を送信するための新しいプロセスをフォークします。概念的には、これは完全に理にかなっていますが、実際には、かなりのオーバーヘッドが発生します。 産卵しながらスレッド招き少ないメモリとフォークよりもCPUのオーバーヘッドのプロセスは、それはまだ非効率的であることができます。多数のスレッドが存在すると、負荷の高いシステムがスレッドのスケジューリングとコンテキストスイッチングに貴重なサイクルを費やす可能性があり、これにより遅延が追加され、スケーラ

続きを読む

一見単純なシングルトンパターンをナビゲートする方法

シングルトンパターンは、特にJava開発者にとってさえ、一見シンプルです。この古典的なJavaWorldの記事では、David Gearyが、Java開発者がシングルトンを実装する方法を示し、マルチスレッド、クラスローダー、およびシングルトンパターンを使用したシリアル化のコード例を示します。彼は、実行時にシングルトンを指定するためにシングルトンレジストリを実装することを検討して締めくくります。 クラスのインスタンスを1つだけ持つことが適切な場合があります。ウィンドウマネージャー、印刷スプーラー、ファイルシステムは典型的な例です。通常、シングルトンと呼ばれるこれらのタイプのオブジェクトは、ソフトウェアシステム全体の異なるオブジェクトによってアクセスされるため、グローバルなアクセスポイントが必要です。もちろん、複数のインスタンスが必要になることはないと確信している場合は、考えを変えることをお勧めします。 シングルトンデザインパターンは、これらすべての懸念に対処します。シングルトンデザインパターンを使用すると、次のことができます。 クラスのインスタンスが1つだけ作成されていることを確認します オブジェクトへのグローバルアクセスポイントを提供します シングルトンクラスのクライアントに影響を与えることなく、将来的に複数のインスタンスを許可する シングルトンデザインパターンは、

続きを読む

開発者が知っておくべき7つのローコードプラットフォーム

一部の開発者は、Java、.NET、JavaScript環境の外に持ち出すローコードプラットフォームを使用したり、IDE、自動テストフレームワーク、DevOpsプラットフォームから分離したりすることを考えています。他の企業は、迅速なアプリケーション開発を可能にし、複雑な統合をサポートし、モバイルユーザーエクスペリエンスを提供するツールとしてローコードプラットフォームを採用しています。 しかし、開発者は単にローコードプラットフォームとその機能を却下すべきではありません。企業は、ほとんどのITチームが提供またはサポートできるよりも多くのアプリケーション開発を必要としています。ITはすべてにローコードプラットフォームを使用するわけではありませんが、開発を加速し、追加のメリットを提供するのに役立ちます。 私は、ほぼ20年間、ローコード、ノーコード、市民開発、およびその他の迅速な開発ツールについて説明してきました。今日のプラットフォームにより、チームはさまざまなアプリケーションを提供、サポート、および拡張できます。これらは、顧客体験を提供し、ワークフローを合理化し、データ統合を自動化し、データの視覚化をサポートするために、デジタルトランスフォーメーションで使用されます。 多くの企業がローコードプラットフォームを使用して、COVID-19に対応するアプリケーションを開発したり、レガシーアプリ

続きを読む