タグ

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

  • 今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様

    はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし紹介していくことで、今のC++言語の姿を理解していただきます。 対象読者 かつてはC++をたしなんでいたという方 今からC++言語を始めるという方 モダンなプログラミング言語のパラダイムに興味のある方 必要な環境 記事のサンプルコードは、以下の環境で動作を確認しています。 macOS Sonoma/Windows 11 Xcode Command

    今どきのプログラミング言語では当たり前! Modern C++で使えるモダンな言語仕様
    nakag0711
    nakag0711 2024/05/24
    consteval関数にも触れて欲しい/nullptrが重要なのはNULLはintなので変なオーバーライド関数が呼ばれることがあったがnullptrはnullptr_tなのでそういうことがない
  • 生のポインタは使わないで! Modern C++のメモリ管理

    連載では、Modern C++と称されるC++について、Modern C++らしい言語仕様をピックアップし紹介していきます。第3回は、スマートポインタについて紹介します。高度なメモリ管理には生のポインタの使いこなしが必須という古い常識はもはや通用しません。メモリを効率よく、しかも安全に使うことを実現しているスマートポインタについて理解を深めます。 はじめに C言語から派生したオブジェクト指向プログラミング言語であるC++は、21世紀に入ってまったく別物とも言えるプログラミング言語に成長していきました。それは、Modern C++と称されています。1990年代にC++を触っていたプログラマが現在の仕様を知れば、隔世感に苛まれるのではないでしょうか。連載では、かつてはC++をたしなんでいたという方、今からC++言語を始めるという方に向けて、Modern C++らしい言語仕様をピックアップし

    生のポインタは使わないで! Modern C++のメモリ管理
    nakag0711
    nakag0711 2023/10/21
    所有権とは誰がメモリを解放する権利と責任を負っているかを示すものでそのメモリを利用できるかではない。所有権がないときは解放されてないかわからないので利用に約束事が必要にはなるが。あとis ownという英語
  • 新サービス構築にRustを選んで良かったこと、そしてちょっと苦労したこと

    言語を指定せずに求人を出したら、応募が殺到 森氏はまず、「技術選定」という言葉の意味を再確認した。プロジェクトで効率よく、そして効果的に開発実装を進めるために、適切な技術(言語、データベース、クラウド・サービスなど)を選ぶことといった意味になる。しかし森氏は現実には別の条件も付くと言う。 「社内で作った既存のライブラリを使用すること」「社内事情のため、OSはWindows Serverにすること」「開発ベンダーを代えることはできないので、工数を確保できる言語を選ぶこと」など、過去のしがらみや技術的負債に引っ張られてしまうのが現実だ。そして、開発後の保守などを考えれば、それは仕方のないことだともいう。 現実の技術選定はどうしても過去のしがらみや技術的負債に引っ張られてしまう ペイルドは4年前に、新事業で提供するWebサービスのサーバー・サイドの開発言語としてRustを選んだ。Rustを選んだ

    新サービス構築にRustを選んで良かったこと、そしてちょっと苦労したこと
    nakag0711
    nakag0711 2023/05/15
    やはり新しいものにはこういうのあるのね
  • Linuxカーネル開発者を目指す人のための無料オンラインコースが提供開始

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Linuxカーネル開発者を目指す人のための無料オンラインコースが提供開始
    nakag0711
    nakag0711 2019/10/22
  • 累計2300万DLを突破!「Yahoo!天気」アプリを人気アプリへと成長させたPM手法【デブサミ関西2016レポート】

    雨雲の接近や台風進路がわかる天気予報アプリとして、累計2300万ダウンロードを突破したという「Yahoo!天気」アプリ。2015年の大幅リニューアルで、インターフェースが見やすくなっただけでなく、さまざまな機能が強化された。その開発責任者は、Yahoo! JAPANの大阪オフィスでITエンジニア歴15年という湯澤秀人氏。“気象に関してはド素人”という同氏がどのようにプロジェクトを牽引し、日で一番支持される天気アプリとまで言われるようになったのか。2016年9月16日に開催された、Developers Summit 2016 KANSAIでの講演レポートをお届けする。 ヤフー株式会社 湯澤秀人氏 講演資料:「生涯エンジニアというマインドを活かしてYahoo!天気アプリを成長させたPM手法」 フルリニューアルの指針となった“天気を把握できる道具”というコンセプト 「Yahoo!天気」アプリは

    累計2300万DLを突破!「Yahoo!天気」アプリを人気アプリへと成長させたPM手法【デブサミ関西2016レポート】
    nakag0711
    nakag0711 2016/10/25
    あんなゴリ押ししといて白々しいー
  • SQLインジェクション対策の極意はSQL文を組み立てないことにあり

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    SQLインジェクション対策の極意はSQL文を組み立てないことにあり
    nakag0711
    nakag0711 2016/01/29
    ビューストプロはSQLおじさんのものという偏見があるような気がする。あとデバッグやテストの環境が貧弱なのが難点だな
  • DBの値を自動でJavaオブジェクトに変換するライブラリ「DBUtils」のご紹介

    連載では、サーバーサイドJavaを使って業務アプリケーション開発を行う熱血若手エンジニアのために、面倒な作業が楽になる便利なツールをご紹介します。「定時になったらスマートに帰社してアフター5を存分に楽しみたい!」や「設計書やレビューの準備に煩わされるのは嫌だ、コーディングに集中したい!」などを実現してくれる便利なツールやソフトウエアを、サンプルコードを交えて説明します。 はじめに サーバーサイドJavaによるWebシステムでは、クライアントから受け取ったデータをもとに、データベース上のデータを参照したり、更新したりすることがよくあります。 当は、クラス設計などに時間をたっぷり費やして、効率がよく品質の高いプログラムを書きたいのに、データベースに登録されたたくさんのテーブル/カラムから必要な値をResultSetで受け取り、それをJavaの一つ一つオブジェクトに格納して……など単調な作業

    DBの値を自動でJavaオブジェクトに変換するライブラリ「DBUtils」のご紹介
    nakag0711
    nakag0711 2014/02/06
  • オープンソースのワークフローエンジン「Activiti」入門

    1. オープンソースのワークフローエンジン「Activiti」とは 「Activiti」は、Apache2.0ライセンスのもとで配布されているオープンソースの“ワークフロー・エンジン”です。 BPMN2.0という規格に準拠していることから、“BPMN2.0エンジン”とも呼ばれています。 Activitiの開発は、オープンソースの「Enterprise Content Management(企業向けコンテンツ管理システム)」で有名な「Alfresco Software」によって行われています。 Activitiは、元JBoss jBPMプロジェクトリーダーであり、開発者でもあったTom Baeyens氏らによって開発されました。 よって、jBPMのVer.3およびVer.4のコンセプトを継承しており、JavaベースのWebアプリケーションへ組み込みやすいエンジンになっています。 これまでの

    オープンソースのワークフローエンジン「Activiti」入門
    nakag0711
    nakag0711 2013/07/19
  • 普及目前! 10Gigabit Ethernetの世界を知る

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    普及目前! 10Gigabit Ethernetの世界を知る
    nakag0711
    nakag0711 2013/05/21
    末端サーバで10Gあってもなにもかもが追い付かないよな
  • データベース設計の煩雑な作業を自動化する「ERMaster」

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    nakag0711
    nakag0711 2013/04/27
    ER図というものを便利だと思ったことがない。大して見易くもなくコメントも書けず表現力も低く。
  • IPA、「アジャイル型開発プラクティス・リファレンスガイド」を公開

    IPA(情報処理推進機構)技術部のソフトウェア・エンジニアリング・センター(SEC)は、アジャイル型開発で用いられる、組織、プロセス、技術などの実践のための指針「プラクティス」について、先駆的企業を対象とした事例調査を行い、その結果を「アジャイル型開発プラクティス・リファレンスガイド」としてまとめ、19日に公開した。 「アジャイル型開発プラクティス・リファレンスガイド」では、国内でアジャイル型開発の活用が進む先駆的企業の59件のプラクティスの利用状況を調査、分類し、プラクティスのプロジェクト規模やアジャイル型開発の種類などによる適用状況の違い、適用する場合の工夫や留意点などについてまとめている。 59件のプラクティスについて、3つのカテゴリに分けた上で、さらに10のサブカテゴリに分類し、適用分野を明確化した。また、プロジェクトの特性を9つに分け、それぞれに対してどのようなプラクティスを使

    IPA、「アジャイル型開発プラクティス・リファレンスガイド」を公開
    nakag0711
    nakag0711 2013/03/20
  • C#で始めるテスト駆動開発 ~TDDBC横浜の課題をやってみよう

    はじめに 各地でTDD Boot Camp(TDDBC)が開催されるようになり、このところTDD(テスト駆動開発)が注目を浴びています。ただ、自分でも試してみようと思った時に目につく書籍や記事などは、JavaRubyPHPといった、いわゆるオープンソース系の言語ばかり。.NET Framework(Windows)で開発の仕事をしているとTDDは関係ないんだろうか、…とさえ思えてくるかもしれません。 しかし、そんなことはありません。.NET FrameworkでのTDDに必須のユニットテストフレームワークとして有名なNUnitの最初のバージョンは、Visual Studio .NET 2002がリリースされる以前の2001年に公開されています。.NET Frameworkは、生まれたときからTDDと共にあると言っても過言ではないでしょう。 この記事では、TDDとTDDBCについて簡単に

    C#で始めるテスト駆動開発 ~TDDBC横浜の課題をやってみよう
    nakag0711
    nakag0711 2011/12/13
    UIや外部サーバや外部DBが絡んだパターンでやってもらわないと実務的には意味薄い
  • GNU tar 1.22リリース gzipより圧縮効率が大きく向上した「xz」をサポート

    GNUプロジェクトは3月5日、GNU tar 1.22をリリースした。このバージョンでは、新たに「xz圧縮」をサポートする“--xz”オプションが追加された。この見慣れない圧縮形式は、.lzmaを置き換えるものとして、LZMA UtilsをリリースしてきたTukaaniプロジェクトが公開したフォーマット。拡張子は.xzだ。 GNUプロジェクトは3月5日、GNU tar 1.22をリリースした。tarは、複数のファイルを1つにまとめるUNIX標準のファイルアーカイブ。GNU tarバージョン1.22では、新たに「xz圧縮」をサポートする“--xz”オプションが追加された(“-J”にショートカットがアサインされている)。 この見慣れない「xz」という圧縮形式は、これまでLZMA UtilsをリリースしてきたTukaaniプロジェクトが1月29日に正式公開したフォーマットで、拡張子は.xz。既存

    GNU tar 1.22リリース gzipより圧縮効率が大きく向上した「xz」をサポート
    nakag0711
    nakag0711 2009/05/06
  • C++0xのマルチスレッド機能

    はじめに C++の新しい標準規格である「C++0x」の大きな新機能の1つが、マルチスレッド処理のサポートです。 従来のC++では、マルチスレッド機能は標準規格の拡張としてコンパイラごとに提供されていたため、細かな部分がコンパイラやプラットフォームによって異なっていました。しかしC++0xでは、すべてのコンパイラが同じメモリモデルに準拠し、同一のマルチスレッド機能を利用できることになります(ただし、従来同様の拡張をコンパイラが独自に提供することも可能です)。 開発者の立場からすると、マルチスレッドのコードを別のコンパイラやプラットフォームへ移植するときの手間を大きく省くことができます。複数のプラットフォーム向けの開発を行う場合でも、種々雑多なAPIや構文をいくつも頭に入れておく必要がありません。 新しいスレッドライブラリの中心を担うのは、実行スレッドを制御するstd::threadクラスです

    C++0xのマルチスレッド機能
    nakag0711
    nakag0711 2008/12/03
    C++は使う機会がないけど、std::lockは便利そうだなあ
  • H.264やばい、マジやばい。Adobeサイトで動画を見られるから今すぐ見て!:CodeZine

    Flash Player 9 update 3ではH.264エンコードをサポートし、HD画質の動画が見られるようになりました。HD画質の美しさはびっくりするぐらい奇麗なので、ぜひとも視聴することをおすすめします! 「HD画質の動画なんて、どこで見られるんだ?」という人のために、Adobeのサイトでは映画のトレーラーなどが多数公開されています。ここでは動画を見るまでの手順を紹介します。 1.Flash Player 9 Update 3にアップデートする まずはFlash Playerをアップデートする必要があります。まだしていない方は以下のURLよりアップデートしてください。 Adobe Flash Playerダウンロードセンター 2.Adobe Flash onにアクセス それでは動画を公開しているサイト「Adobe Flash on」にアクセスしましょう。ここでは直接HD

    nakag0711
    nakag0711 2007/12/07
    確かに綺麗だけどこの見出しどうなの
  • 1