ブックマーク / codezine.jp (19)

  • PHPパッケージ管理ツール「Composer」の処理の仕組みを見てみよう!

    PHPに関する日最大のカンファレンスである「PHPカンファレンス2024」が2024年12月22日(日)に開催されます。カンファレンス盛り上げ企画として、開催までの5カ月間にわたりPHP技術記事の連載を企画しました。この記事をお読みの皆さんには、PHPのさまざまな技術に触れながらカンファレンス当日を楽しみにしていただければと思います。 第4回目の今回は、PHPのパッケージ管理ツールとしておなじみの「Composer」について、どのようにパッケージの存在を確認し、バージョンを解決するのか、一連の流れを見ていきましょう。 パッケージ管理ツール「Composer」 今日では、多くのプログラミング言語において、開発プロジェクトにパッケージ管理ツールが欠かせないものとなりました。 既存資産の活用で「車輪の再発明」を避け、開発の効率化を助けてくれます。また、セキュリティ意識が高まる中で、厳密なバー

    PHPパッケージ管理ツール「Composer」の処理の仕組みを見てみよう!
    issyurn
    issyurn 2024/11/18
  • JavaScript/TypeScript向け静的解析ツール「Oxlint」が正式に公開、Rustの採用で大幅に高速化

    Oxlintは、JavaScriptTypeScriptのコードを調べ、エラーにつながりやすい書き方となっている部分や、必要のない部分を指摘する機能を持っている。この用途では「ESLint」が事実上の標準となっているが、100%JavaScriptで記述してあるため、実行速度が問題となっている。 Oxlintでは、プログラムを記述する言語にRustを選ぶことで処理速度を大きく引き上げた。さらに、並列処理に対応し、コンピュータのプロセッサが搭載するコアの数が増えるに従って性能が上がっていく設計になっている。さらに、テスト結果のメッセージをシンプルかつ分かりやすいものにした点も特徴として挙げられる。 正式版になる前からOxlintを試験的に使っていた米Shopifyの担当者は、ESLintを使っていた頃は自社開発のコードをテストするのに75分かかっていたが、Oxlintを使ったところ、10秒

    JavaScript/TypeScript向け静的解析ツール「Oxlint」が正式に公開、Rustの採用で大幅に高速化
    issyurn
    issyurn 2023/12/27
  • データ型は明示しないで! Modern C++での型推論

    このように、(1)(2)と「vector<int>」を2回も書かなければなりません。特に(2)では、右辺の型は分かっているんだから、左辺はそれに合わせてよ! という文句が出そうです。 初期化漏れを防止する このように、同じ意味の型を何回も書くのはかったるいな! というときに型推論は役立つわけですが、もっと切実な理由があります。それは、変数の初期化漏れの防止です。JavaでもRustでもそうなんですが、変数は宣言しっぱなしでOKです。宣言しっぱなしというのは、明確な初期化が行われていないという意味です。こうなると、その変数を参照しようとするといろいろとまずいことが起きてきます。 基データ型とかなら、どんな値か分からない ポインタ型とかなら、どこを指しているか分からない(ダングリングポインタ) なので、実行時にプログラムが不可解な動作をしたり、いきなり落ちたりするわけです。しかし、コンパイラ

    データ型は明示しないで! Modern C++での型推論
    issyurn
    issyurn 2023/08/17
  • JetBrains、プログラミング言語「Kotlin 1.9.0」を公開、生成するWebAssemblyのサイズが10分の1に

    チェコJetBrainsは、同社が開発したプログラミング言語「Kotlin」の次期版となる「バージョン1.9.0」を7月6日(現地時間)に公開した。KotlinJavaを基に、より簡潔にコードを記述できるようにすることと、より安全にプログラムを実行できることを目指して開発している言語。コードをコンパイルすると、Javaのバイトコードを出力し、そのままJava仮想マシンで動作させることが可能だ。そしてKotlinは、Apache 2.0ライセンスで公開しているオープンソース・ソフトウェアだ。 まず、新しいコンパイラ「K2」に新機能が加わった。K2コンパイラは、2022年6月に公開したバージョン1.7.0に合わせて登場したものだが、まだアルファ版という位置付けだ。2023年2月に登場したバージョン1.8.20のベータ版では、KotlinコードからJavaScriptコードを生成する「Kotl

    JetBrains、プログラミング言語「Kotlin 1.9.0」を公開、生成するWebAssemblyのサイズが10分の1に
    issyurn
    issyurn 2023/07/15
  • Dockerが高速ファイル同期ツールを開発するMutagen IOを買収、Docker Desktopに機能取り込みを目指す

    Dockerは、高速ファイル同期ツール「Mutagen」を開発する米Mutagen IOを買収したと6月27日(現地時間)に発表した。Mutagenはインターネット経由でローカルとリモートのファイルやディレクトリをリアルタイムで同期する機能やネットワーク関連のリクエストを転送する機能を提供する。MITライセンスで公開しているオープンソース・ソフトウェアだ。 Dockerは今回の買収で取得したMutagenの技術Docker Desktopなどのソフトウェアに取り込むことを目指している。Docker DesktopにMutagenの技術を取り入れることで、インターネット経由でつながったサーバーとローカル環境の間でファイルやディレクトリを同期する速度が飛躍的に向上する見込みだ。Mutagen IOの最高経営責任者(CEO)であるJacob Howard氏は、Dockerエンジニア・チーム

    Dockerが高速ファイル同期ツールを開発するMutagen IOを買収、Docker Desktopに機能取り込みを目指す
    issyurn
    issyurn 2023/07/11
    “Docker DesktopにMutagenの技術を取り入れることで、インターネット経由でつながったサーバーとローカル環境の間でファイルやディレクトリを同期する速度が飛躍的に向上する見込みだ。”
  • デブサミ2019夏ベストスピーカー決定、満足度1位の3名が同時受賞

    受賞者は下記の通り。 ベストスピーカー賞 基準:一定の満席率以上のセッションのうち、来場者満足度1~3位 今回は、満足度1位が3名並んだため、全員をベストスピーカー(1位)とした。 1位【A-1】「愛されるプロダクトをつくるエンジニア組織とは――「テクノロジー」「開発プロセス」との緊密な関係」及川 卓也氏 [Tably] 受賞コメント デブサミでベストスピーカー賞を受賞するのはこれで2回目となります。前回の受賞は2011年の春、クラウド時代のソフトウェア開発と題し、クラウドが前提の開発手法をご紹介しました。あれから8年、クラウドは当たり前になり、フレームワークや手法は普及しつつも、まだプロダクトファーストに成りきれていない組織が多くあります。そんな方々にお役に立てばとお話した内容で受賞できたことは素直に嬉しいです。あと一歩前に進みましょう。 1位【B-4】「組織にテストを書く文化を根付かせ

    デブサミ2019夏ベストスピーカー決定、満足度1位の3名が同時受賞
    issyurn
    issyurn 2019/08/01
  • 「エンジニアは初見の敵にやられてはいけない」DBエンジニアのミックさんが語るデータベースとSQLの学び方

    IT業界において数十年もの間、大きな仕様変更がなく主流の技術であり続けているのがリレーショナルデータベースとSQLです。『SQL 第2版 ゼロからはじめるデータベース操作』の著者でデータベースエンジニアのミックさんは、SQLを学べば長く役立つものの、データベースの魅力はそれ自体の面白さだとおっしゃいます。今回、ミックさんにデータベースの役割や魅力、そしてSQLの学び方についてうかがいました。 いろいろなシステムを見ることができるのが面白い ――ミックさんは『SQL 第2版 ゼロからはじめるデータベース操作』のほかにも、翔泳社から多数出版されています。データベースとSQLの書籍が主ですが、普段はどういった仕事をされているのでしょうか。 ミック:私はSIerに勤めていて、システム開発というよりは、システム開発でトラブルが起きたとき支援を行なうチームに所属しています。パフォーマンスを高めることが

    「エンジニアは初見の敵にやられてはいけない」DBエンジニアのミックさんが語るデータベースとSQLの学び方
    issyurn
    issyurn 2019/02/01
    “エンジニアは初見の敵に対してもなんとか引き分けに持ち込む必要があります。そのためには、問題の構造を見抜いてパターンに落とし込む必要があります。初見殺しの敵も、実はパターンさえ見切れば簡単に勝ててしま
  • Pythonでデータと向き合いながら価値を見出す「探索的データ解析」に挑戦しよう

    連載では、プログラミングの基は理解していて、より実践的なデータ解析に取り組みたい方を対象に、スクリプト言語によるデータ解析の実践を解説します。スクリプト言語のなかでも特にデータ解析に役立つライブラリや環境が整っているPythonを取り上げ、対話型解析ツールやライブラリについて導入から解析の実行・可視化までを解説します。第2回では、Pythonによる探索的データ解析を解説します。まず対話的環境による探索的データ解析について確認し、Jupyter Notebookを使ったデータ解析の実行・可視化までの手順を解説します。 対象読者 Pythonの基的な文法を理解しておりデータ解析のスキルアップに取り組みたい サンプルの動作確認環境 MacOS 10.13 Anaconda 5.1 Python 3.6 Jupyter Notebook 5.4 探索的データ解析の流れを確認 まず対話型環境に

    Pythonでデータと向き合いながら価値を見出す「探索的データ解析」に挑戦しよう
    issyurn
    issyurn 2018/09/07
  • 未来を創るエンジニアたちが見る世界

    新時代を牽引するエンジニアたちは、いま何を考え、未来をどう創り上げていこうとしているのか。コーナーでは、LINEヤフーの多彩なエンジニアや、各領域をリードするキーパーソンたちが語り合います。

    未来を創るエンジニアたちが見る世界
    issyurn
    issyurn 2018/08/27
  • テックリードやリードエンジニアとしての生存戦略――長い時間をかけて積み重ねてきたものには大きな価値がある

    一定のキャリアを積んだエンジニアが、一度は思い悩むテーマ。それが「どうやって強みを身につけ、生き残っていくか」だ。エンジニアのキャリアプランは多種多様。数ある選択肢のなかから、何を選ぶべきか迷う人は少なくない。その課題を解決するヒントを提供するため、teratailがおくるITエンジニアの問題解決カンファレンス「MANABIYA -teratail Developer Days-」ではトークセッション「テックリード/リードエンジニアとしての生存戦略」が行われた。株式会社メルカリの是澤太志氏がモデレーターとなり、同じく株式会社メルカリの名村卓氏、株式会社トレタの増井雄一郎氏、株式会社Speeeの村田賢太氏の3名が語り合った。 MANABIYA -teratail Developer Days- 学生時代から、とにかくコードを書いていた 是澤:まず教えてもらいたいのが「学生時代はどんなことをし

    テックリードやリードエンジニアとしての生存戦略――長い時間をかけて積み重ねてきたものには大きな価値がある
    issyurn
    issyurn 2018/05/09
  • AIエンジニアとして活躍するために必要なスキルとは? 人材育成の第一人者が語る

    ビッグデータの活用とともに、データマイニングやBIなど、データ分析が注目を集めている。それに加えてここ最近、エンタープライズ分野で盛り上がっているのが人工知能AI)の活用である。だが、そのための人材は不足しているのが現状だ。ではAI人材に必要とされるスキルとは何か。またどうすればAI人材が育成できるのか。富士通ラーニングメディアでは3月19日に「AI Innovators Meetup Day ~AI時代を勝ち抜くためのスキルとは~」を開催。「AI時代に必要とされるスキルの変化と求められる人材育成のあり方」と題したパネルディスカッションでは、富士通株式会社の吉田浩之氏をモデレーターに、株式会社オートマティストの巣籠悠輔氏、株式会社グリッドの曽我部完氏、株式会社富士通ラーニングメディアの木下紀子氏が、AI人材に求められるスキルや育成方法について語り合った。 巣籠悠輔氏 株式会社オートマティ

    AIエンジニアとして活躍するために必要なスキルとは? 人材育成の第一人者が語る
    issyurn
    issyurn 2018/04/23
  • 実践DDD本 第7章「ドメインサービス」~複数の物を扱うビジネスルール~

    第6章「値オブジェクト」~振る舞いを持つ不変オブジェクト~ DDDにおけるサービスとは DDDでは、エンティティ、値オブジェクト、集約といった「ドメインオブジェクト」だけではなく、それらの外に記述したほうがよいロジックも存在します。そのようなときに、状態を持たないステートレスな「サービス」を使用できます。サービスには、大きく分けて次の2つが存在します。 ドメインサービス:エンティティや値オブジェクトの責務ではないドメインモデルのロジック(複数のドメインオブジェクトを使って計算する処理やファサード) アプリケーションサービス(詳細は14章):非常に薄く、ドメインモデル上のタスクの調整に使うロジック(腐敗防止層の変換・アダプター等) DDDにおけるサービス ドメインサービスの特徴 ドメインサービスの特徴は、ドメイン層の中に含まれ、ビジネスロジックを持つことができる点にあります。章では、このド

    実践DDD本 第7章「ドメインサービス」~複数の物を扱うビジネスルール~
    issyurn
    issyurn 2018/02/26
  • ファイルディスクリプタについて(5) ~多重I/O「Multiplex I/O」の種類の特徴、使い方

    はじめに 前回は、プログラムの内外部から発行されたシグナルイベントを補足し、通知するためのシグナル用ディスクリプタ「signalfd」について解説しました。今回は、複数のファイルディスクリプタを一元管理する「多重I/O」機能について解説してきます。 連載概要 第1回:ディスクリプタの概要 第2回:イベント用ディスクリプタ「eventfd」の特徴 第3回:タイマー用ディスクリプタ「timerfd」の特徴 第4回:シグナル用ディスクリプタ「signalfd」の特徴 第5回:多重I/O「Multiplex I/O」の種類の特徴、使い方 第6回:多重I/Oの性能とC10K問題 第7回:シグナル駆動I/Oの特徴、使い方 第8回:非同期I/O「Asynchronous I/O」の使い方と性能差 第9回:ファイルディスクリプタパッシングの特徴、使い方 サンプルプログラムは100行前後程度までは画面に記載

    ファイルディスクリプタについて(5) ~多重I/O「Multiplex I/O」の種類の特徴、使い方
    issyurn
    issyurn 2018/02/02
    “多重I/Oは複数のファイルディスクリプタを一元的に管理し、ready状態になったディスクリプタが現れたら対象のディスクリプタを知らせる機能です。”
  • Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」

    まつもとさん自身によるStreemについての解説は、今後日経Linuxで順次掲載されるようです。まつもとさんがStreemについて解説する内容は、おそらく、プログラミング言語設計に関する高レベルなものとなるのではないでしょうか。 記事はそれとは無関係に、2015年1月に公開されているStreemについての低レベルな解説、つまり現時点のStreemのソースファイル(の一部)の読み解き方を示します。具体的には、GitHubのStreemリポジトリにある「lex.l」と「parse.y」という2つのソースファイルについて解説します。 Streemのソースファイルは、https://github.com/matz/streemからダウンロードできます。画面右下にある[Download ZIP]ボタンをクリックしてください。 lex.lとparse.y ダウンロードしたStreemソースファイルの

    Ruby開発者・まつもとゆきひろ氏の新言語「Streem」のソースコードを読んでみよう! ~ 文法と構造を規定する「lex.l」と「parse.y」
    issyurn
    issyurn 2017/10/26
  • 「魂の浮力」に釣り合う場所を知り、自分らしくあれ――まつもとゆきひろ氏が考えるエンジニアの幸福【COMPANY Forum 2016】

    プログラミング言語「Ruby」の開発者である、まつもとゆきひろ氏。25年というキャリアの中で、アーキテクトやプロダクトマネージャー、エグゼクティブディレクターといった肩書きとは無縁のエンジニア人生を過ごしてきた。しかし、一人の天才プログラマ「Matz」として世界的に知られ、常に注目を集めている。ワークスアプリケーションズ主催「COMPANY Forum 2016」にて開催されたエンジニア向けトークセッション 第2部では、そんなまつもと氏が「一人のエンジニアとして」世界に通用するための経験について語った。 まつもとゆきひろ氏:1965年、大阪府生まれ。1990年に筑波大学第三学群情報学類卒業後、静岡県のソフトウェア開発会社入社。1993年に「Ruby」開発を始め、1995年にフリーソフトウェアとして公開。1997年に島根県松江市に移住し、株式会社ネットワーク応用通信研究所に入社。2007年よ

    「魂の浮力」に釣り合う場所を知り、自分らしくあれ――まつもとゆきひろ氏が考えるエンジニアの幸福【COMPANY Forum 2016】
    issyurn
    issyurn 2017/10/26
  • Google Cloud Platformの世界観を伝える実用的な入門書ができた――中井悦司&阿佐志保インタビュー

    技術を根から理解して使いこなす面白さや喜びを伝えたい――そう語るのは『プログラマのためのGoogle Cloud Platform入門』の著者、中井悦司さんです。また、共著者の阿佐志保さんは「クラウドサービスの利用はこれからのエンジニアの必須スキル」と言います。書刊行に際し、お二人に読みどころやGCPについてうかがいました。 クラウドサービスの利用はこれからのエンジニアの必須スキル ――『プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで』は、GCPの特徴や機能だけでなく、インフラの基礎知識も解説した、まさにこれから学びたいプログラマのためのです。 著者の中井さんは外資系ベンダーでLinuxエンジニアとして仕事をしたあと、Linuxディストリビューターのエバンジェリストを経て、現在はGoogle Cloud

    Google Cloud Platformの世界観を伝える実用的な入門書ができた――中井悦司&阿佐志保インタビュー
    issyurn
    issyurn 2017/10/25
  • 難易度は? 効果は? 実践して初めて分かった「ペアプログラミング」の実際

    この20年ほどの間に、「ウォーターフォール」へのアンチテーゼとして現れた、XP(エクストリーム・プログラミング)やScrumと呼ばれる「アジャイル」な開発手法が浸透してきた。中でも、近年ではXPの一部を構成する「ペアプログラミング(ペアプロ)」に対する関心が高まりを見せているようだ。ただ、ペアプロという手法があることを知ってはいても「どのように導入を進めれば良いか」「どのような効果があるのか」については、漠然としたイメージしか持っていないという人も多いのではないだろうか。今回、Yahoo! JAPANのヤフオク!カンパニーにおいて「Lean XP」の一部としてペアプロを導入した山下真一郎氏と、日におけるテスト駆動開発(TDD)の第一人者である和田卓人氏に、自らの実践の中で感じているペアプロのメリットや、導入のポイントについて語ってもらった。 「Lean XP」の一部としてペアプロの導入に

    難易度は? 効果は? 実践して初めて分かった「ペアプログラミング」の実際
    issyurn
    issyurn 2017/08/03
  • 「Lean XP」「アジャイル支援コーチ」――Yahoo! JAPANにおける高品質なサービスを提供するための取り組み【デブサミ2017】

    セッションは2部構成で、第1部はiOS版のヤフオク!公式アプリでプロダクトマネージャーを務める山下真一郎氏が、アジャイル開発手法「Lean XP」の概要と、自らのチームで実践して高品質なソフトウェアを構築している事例を紹介。特にペアプログラミング、テスト駆動開発に興味がある人には興味深い内容となった。第2部はYahoo! JAPAN アジャイル/自動化コーチの伊藤宏幸氏が、DevOpsの考え方が普及しつつある現在、必須事項ともいえる「テスト自動化」について解説。自動化の始め方やアンチパターン、伊藤氏が実際にコーチングしたチームの事例が語られた。 講演資料:市場で勝ち続けるための品質とテストの技術(山下氏) ヤフー株式会社 ヤフオク!カンパニー ヤフオク!開発部 山下真一郎氏 ペアプログラミングとテスト駆動開発でアプリ開発の課題を解決 セッションの前半は、山下真一郎氏が「ヤフオク!公式

    「Lean XP」「アジャイル支援コーチ」――Yahoo! JAPANにおける高品質なサービスを提供するための取り組み【デブサミ2017】
    issyurn
    issyurn 2017/08/03
  • CodeZine(コードジン)

    UNIX基礎講座 UNIXとは | UNIXの基構造 | ファイルシステム | ファイルシステムの構造 | 絶対パスと相対パス | マウント | シェル機能 | ヒストリ機能 | ワイルドカード | リダイレクション | パイプ | エイリアス | 環境設定 | シェル変数と環境変数 | カスタマイズ | コマンドリファレンスの形式とmanコマンド | リファレンスの形式 | マニュアルページの活用 ファイルとディレクトリの操作 cd | chgrp | chmod | chown | cp | dd | df | du | ln | ls | mkdir | mv | pwd | rm | rmdir | split | find | od | touch テキスト処理 cat | comm | cut | diff | diff3 | echo | expand | fold | g

    CodeZine(コードジン)
    issyurn
    issyurn 2017/02/08
  • 1