タグ

ブックマーク / qiita.com (1,248)

  • 2022年度版Python環境構築徹底解説 - Qiita

    各機能とツールについて、説明していきます。 エディタ Visual Studio Code エディタやIDE(統合開発環境)は好きに選んでいただければ良いとは思いますが、特に希望がないならば、Visual Studio Codeを選んでおけば間違いないでしょう。 Pythonを含む幅広い言語に対応し、豊富な拡張機能を備えている非常にリッチなエディタです。とりわけPythonプロジェクトについては、これさえ有れば、特にIDEなどは必要ないと思います。 インストールは↓から。 バージョン管理ソフト Python3系は日夜アップデートされていて、2022年12月現在の最新verは、3.11.1が提供されています。 とはいえ、プロジェクトによっては、3.7.1までしか動作が担保されていないもの、3.9.0で現在開発中のもの...などがあります。最新のPythonが常に必要、というわけでは決してなく

    2022年度版Python環境構築徹底解説 - Qiita
    syuu256
    syuu256 2022/12/26
  • 開発生産性について議論する前に知っておきたいこと - Qiita

    はじめに 事業としてソフトウェア開発を行う企業にとって、自分たちの開発チームの生産性が十分に高いのか、あるいはそうでないのかについては大きな関心があります。 そのこと自体は、何かを計測し、改善するというのは営利企業としては健全です。一方で、ソフトウェアエンジニアリングの世界で「生産性の高さ」だと主張できる汎用性の高い指標は存在しません。こういった状況の中で、「生産性」を巡る議論は経営やビジネス部門とエンジニアチームとの間で繰り広げられ、場合によっては大きな不和や不信感につながることも珍しいことではありません。 今回は、エンジニアの開発生産性について、さまざまなステークホルダーと議論する上で把握しておきたいさまざまな論点について解説します。それによって、「我々が当に議論すべきテーマは何か」についての共通認識をつくるための土台を構築することを目的としています。 もしかしたら改善したいことは「

    開発生産性について議論する前に知っておきたいこと - Qiita
    syuu256
    syuu256 2022/12/25
  • Javaエンジニアから見たGoの独特な文化 - Qiita

    はじめに Java中心で仕事をしていた人がGoを書いてみると様々な文化の違いにぶつかると思います。そもそもオブジェクト指向言語と手続き型言語であるなど根的に異なる点は多いのですが、「よりシンプルに」をモットーとするGoにはよりJavaエンジニアを困惑させる文化がたくさんあるように見受けられます。 記事ではJavaエンジニアGoを書いた際に感じた独特な文化を経験ベースで書いてみます。Goをこれから書くであろうJavaエンジニアのお役に立てれば幸いです。 対象読者 これからGoを書くことになりそうなJavaエンジニア Javaと比べたGo特有の文化を知りたい人 実際にGoの開発をするにあたって役に立つ思想を知りたい人 記事の対象でない人 Goの構文や書き方を基から学びたい人 とりあえずプロダクトを作って動かしてみたい人 実際に開発する上で意識しない裏の仕組みやアーキテクチャを知りたい

    Javaエンジニアから見たGoの独特な文化 - Qiita
    syuu256
    syuu256 2022/12/23
  • それ、非再帰で書けます - Qiita

    この記事は再帰自体を全否定する趣旨ではありません。 両方の良さを理解した上で非再帰で書きたいと思ったときの参考にしていただければと思います。 まだ再帰関数書いてるの? 再帰関数はプログラミング言語の有用な機能で、深さ優先探索をベースとする様々なアルゴリズムの実装として有用です。 その一方で、関数呼び出しはオーバーヘッドが大きく、定数倍が弱くなります。また、JavaPythonなどのスタック領域の制限が厳し目の言語では深すぎる再帰のせいでRuntime Errorが発生する場合があります。 C++などのコンパイル言語ではインライン展開によって関数呼び出しのオーバーヘッド解消されることもありますが、再帰関数は中でもインライン展開の難易度が高く、深い再帰ではそのまま実行せざるを得ない状況になります。 ところが、再帰関数は生のスタックを自分で用意するなどして非再帰に書き直すことができます。(「停

    それ、非再帰で書けます - Qiita
    syuu256
    syuu256 2022/12/20
  • Amazon DynamoDB の論文を読んでいく - Qiita

    概要 AWS で人気のサービス DynamoDB についての論文が公表され巷で噂になっていたと思う。 今回は、その論文を読み込んでいき、ざっくりまとめていくという記事になります。 完全趣味な記事なので、興味ある人がいれば幸いです笑 Abstract まず論文のタイトルですが、「Amazon DynamoDB: A Scalable, Predictably Performant, and Fully Managed NoSQL Database Service」と題したものとなっています。 Amazon DynamoDB は、NoSQL とよばれる部類のデータベースサービスです。 一貫した耐久性、可用性、パフォーマンスを提供してくれるマネージドなサービスなのが特徴ですね。 冒頭、2021年に66時間にわたる「Amazon Prime Day」中にピーク時8920万リクエスト/秒をさばいてい

    Amazon DynamoDB の論文を読んでいく - Qiita
    syuu256
    syuu256 2022/12/14
  • 初学者のための正しいシェルとカーネルの概念 ~ 大学も技術者認定機関も間違いだらけ - Qiita

    なんだろう、嘘つくのやめてもらっていいですか? 大学も技術者認定機関も、いつまで古いまたは間違ったシェルとカーネルの概念を説明し続けるのでしょうか? シェルはカーネルの言葉をユーザーの言葉に翻訳したり、出力結果をユーザーに中継したり、カーネルを防御したりする層ではありません。指定したコマンドを実行するだけのプログラムです。勉強中の学生か代理執筆業者が適当な文献を調べて書いたとしか思えません。そして他人の説明を自分の言葉に置き換えるのが上手い人がおかしな説明をさらに広めています。個人サイトやオンライン学習サイト程度であれば適当なことを書いていても気にも留めませんが、大学や技術者認定機関のような正しいことを書いているに違いないと思えるような所までもが間違ったことを書いているから困ったものです。 みなさんは大学や技術者認定機関が言っていることなら正しいと思いこんでいないでしょうか? そんなことあ

    初学者のための正しいシェルとカーネルの概念 ~ 大学も技術者認定機関も間違いだらけ - Qiita
    syuu256
    syuu256 2022/12/13
  • 「技術的には可能です」と発声するその前に - Qiita

    技術者はよく、実装可否の問い合わせに対して当はやりたくない・すべきでないと思っているのにやればできることだからと「技術的には可能です」と答えてしまいハマる⋯って当ですか? 私は最低でもここ10年は「技術的には可能です」と発言した記憶がありません。なぜそう言うことがないかというと、可否の問い合わせを受けた時点で次のようなことを考えてしまうからです。 運用は回る? 人力操作が絡むフローがあるけど利用数が増えたときにちゃんとスケールする? 休日深夜対応が必要になりそうだけど要員と人件費コストは確保できてる? カスタマーサポート対応激増しそうだけど(以下同文 誤操作があったりしてデータの修正依頼が来たときに訂正しようがない要件っぽいけど大丈夫? エンジニアDB直操作対応するサービスメニューが存在するけど事故リスク、工数コスト、今後の開発停滞リスクは織り込み済み? 事故の際の責任はエンジニア

    「技術的には可能です」と発声するその前に - Qiita
    syuu256
    syuu256 2022/12/09
  • なぜETLではなくELTが流行ってきたのか - Qiita

    概要 troccoの生みの親で、現プロダクト責任者をしている @hiro_koba_jp です。 troccoアドベントカレンダー2022の1記事目書いていきます!(みんなも参加してね) データ分析やデータエンジニアリングにおいてETL(Extract Transform Load)という言葉を耳にしたことがある方は多いのではないでしょうか? 一方、「ETLではなくELT(音楽グループではない)が主流になりつつある」といったような論調も増えてきました。 この記事では、ETLとELTの違いや、なぜELTにシフトしつつあるのか、この先どうなるのか(予想)について、私なりの見解を書いてみようと思います。 一昔前まではETLパターンが多かった Redshiftが登場した2013年頃、人々はデータレイク層はS3上で構築し、データウェアハウス層〜データマート層はRedshift上に組む人が多かったよう

    なぜETLではなくELTが流行ってきたのか - Qiita
    syuu256
    syuu256 2022/12/06
  • ドメイン駆動設計(DDD)で開発されたシステムを5ヶ月保守開発した感想・学び - Qiita

    巷で、顧客の課題を解決しつつ、より良いシステムを作るための設計手法として、ドメイン駆動設計(DDD)が話題になっていると思います。 このドメイン駆動設計について、どのように実践するか、実際に実践してみてどう感じたか、という話はよく出ていますが、作られたシステムがその後どのようになったのか、保守開発した結果どう感じたのかの話はあまり聞かないな、と思ったので、自分の経験から「実際のところどうなんだ」というところを振り返ってみようかな、と思い、今回の記事を書きました。 目次 私が保守開発しているシステム 5ヶ月の間にやったこと 保守開発していて感じたこと よかったこと 改修時に修正箇所が特定しやすかった テストコードが書きやすく安心して保守することができた 成長できたという実感があった 難しかったこと、学び ドメイン知識は次第に流出していく 定期的なメンテナンスが大事 最後に おまけ エンジニア

    ドメイン駆動設計(DDD)で開発されたシステムを5ヶ月保守開発した感想・学び - Qiita
    syuu256
    syuu256 2022/12/03
  • エンジニアのやる気を削ぐ会議術 - Qiita

    この記事はNuco Advent Calendar 2022の1日目の記事です はじめに やる気を削ぐ会議術 会議(かいぎ)は、関係者が集まり、特定の目的(議題)に関して意見交換・審議し、合意・施策などの意思決定をすること、およびその物理的構成員の集まりを意味する。 会議 - Wikipedia 仕事エンジニアリングを行う人々にとって会議という営みは不可欠である。 そもそも会社という複数の人々の共同体を会議なしで運営することが不可能であることから、当然職業エンジニアにとっても会議は避けられない。 システムの仕様決めのためのチーム内外での話し合い 非IT部門に対するサポートのための説明会 顧客に対する技術的なプレゼンテーション 上司との1on1 etc... 上記のように様々な目的で会議は日々開催される。 開発が仕事であるエンジニアにとっては会議そのものは間接的な業務であるから、会議そのも

    エンジニアのやる気を削ぐ会議術 - Qiita
    syuu256
    syuu256 2022/12/02
  • GASでBacklogAPIをOAuth認証したい - Qiita

    ※Redirect URIは、後述のapps-script-oauth2の設定値 apps-script-oauth2 のインストール OAuth2.0処理ライブラリであるapps-script-oauth2をインストールします 参照:https://qiita.com/TakeshiNickOsanai/items/62810b0e96bf37bd0eca#apps-script-oauth2-%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB GASコード記述 const space_id = '{Backlogのスペースキー}'; const sheet_id = '{記述するシートID}'; const Properties = PropertiesService.getScriptProperties()

    GASでBacklogAPIをOAuth認証したい - Qiita
    syuu256
    syuu256 2022/11/24
  • @dnoboriのマイページ - Qiita

    workOrganizationSoftEther Corporation, IPA CyberLab, NTT-East

    @dnoboriのマイページ - Qiita
    syuu256
    syuu256 2022/11/22
  • データエンジニア界隈で話題のdbt(data build tool)のまとめ - Qiita

    概要 データエンジニア界隈で話題となってきたdbtに関する調査内容を共有します。 OSS版のdbtでも機能が充実しており、データエンジニアの方には一部の機能の利用だけでも価値があるツールです。 必要に応じて、この記事を更新します。 dbt(Data Build Tool)とは dbtとはData Build Toolの略であり、dbt Labs社が開発しているデータ連携のELTにおけるT(データストア内でのデータ変換)の実施をサポートするツールです。 機能をざっくり整理すると下記のものがあり、SQL文のコンポーネント化やドキュメントの自動生成に特異性があります。 有償版であるdbt cloudとOSS版であるdbt Coreがあります。dbt cloudにて、developer版という個人検証用の無償ライセンスもあるので、とりあえず触りたい方はこちらがおすすめです。 引用元:dbt Pri

    データエンジニア界隈で話題のdbt(data build tool)のまとめ - Qiita
    syuu256
    syuu256 2022/11/10
  • シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita

    はじめに bash などのシェルには [ ... ] と [[ ... ]] の二種類の比較方法があります。一つはコマンド、もう一つはシェルの文法なのですが、具体的にはこの二つは一体何が違うのでしょうか? そもそもなぜ似ている機能が二つもあるのでしょうか? この記事は言語設計者の気持ちになって考えることで、その理由を解き明かそうという記事です。 なお、違いについての簡単な説明については「test と [ と [[ コマンドの違い - 拡張 POSIX シェルスクリプト Advent Calendar 2013 - ダメ出し Blog 」の記事がよくまとめられていますので紹介します。一通りの違いを素早く知りたい方はこちらを参照してください。 参考 シェルの歴史や種類については「シェルの歴史 総まとめ(種類と系統図)と POSIX の役割」に詳しくまとめています(系統図とか頑張って書いたので見

    シェルスクリプトの [ ] と [[ ]] の違いを歴史的に解説 〜 言語設計者の気持ちになって理解しよう - Qiita
    syuu256
    syuu256 2022/11/07
  • Rustのlet-else文気持ち良すぎだろ - Qiita

    // let 論駁可能パターン = 値 else { never型を返す処理 }; let Ok(val) = reqwest::get(url).await else { return }; このコードの意味としてはreqwest::get(url).awaitがOk(結果)を返してきたらvalに束縛し、ダメだったら関数を抜ける、になります。 if-let式 let-else文の詳細を説明する前に、まずはRustのif-let式について説明いたします。 Rustは式指向言語のためifも標準で式になっています。よく他言語では三項演算子使用で宗教戦争が起きていますが「if"式"があれば争いなんて起きないのに...(トオイメ」といつも思っています。

    Rustのlet-else文気持ち良すぎだろ - Qiita
    syuu256
    syuu256 2022/11/06
  • いわゆる受託開発における「プログラミングは簡単な部類」は本当なのか - Qiita

    上記ツイートについて、いわゆる「受託開発企業」で働く私の印象としては、当にその通りだな〜と思います。 そして、これまであまり意識しておりませんでしたが「受託開発における納品(完了)までの各フェーズ出し」をしてみようかと思います。 受託開発における納品までの各フェーズ出し 1. 問い合わせへの返答 「お問合せいただきありがとうございます。それでは早速Webミーティングにて詳細を」 2. 第1回Web打ち合わせ「お互い紹介」編 会社スライドにて自社紹介。依頼内容の確認・質問。 できればここで「依頼内容に対してのざっくりの予算感」をさりげなく聞きましょう。奇想天外な予算を想定しているパターンもあります。 3. 見積もりの作成 できるだけ素早く見積もりを作成し提出すると吉。(早いと喜ばれやすい) 保守費用についても記載してくださいね。(後で聞かれるパターン多い) 見積もり項目は細かい方が信頼度は

    いわゆる受託開発における「プログラミングは簡単な部類」は本当なのか - Qiita
    syuu256
    syuu256 2022/11/06
  • setTimeout の真の力、あなたは知っていますか? - Qiita

    こんにちは。ぬこすけ です。 皆さんは「 setTimeout とはどんな関数でしょう?」と聞いたら、どう答えますか? おそらく、ほとんどの人が「指定した時間に処理が走るようにする関数」と答えるのではないでしょうか? function main() { console.log('動いたよ!!'); } // 大体 3 秒後に main 関数が動き出す setTimeout(main, 3000); 大雑把な理解としては問題ないですが、実は setTimeout の隠された能力はそれだけではありません。 setTimeout の隠された能力を知るとどんな良いことがあるのでしょうか? 例えば、次のような良いことがあります。 ブラウザに対する理解が深まる Web サイトのパフォーマンスを向上させることができる ドヤれる まず、 ブラウザに対する理解が深まります 。 かのアリストテレスはこう言い残

    setTimeout の真の力、あなたは知っていますか? - Qiita
    syuu256
    syuu256 2022/11/02
  • DDD本を読むためには前提知識が非常に多いよ - Qiita

    初めに きっかけ 新人研修中にDDDとか、PoEAAとかの話が少しだけ出ました。 ただ、イマイチわからないとの声が多数。 理由 なぜなら予備知識がたくさん必要だからです。(ほんとに多い) これはわからなくて当然。 そこで 独断と偏見で、予備知識となる用語を解説します。 偏見多いので、より正確な情報は、書籍やWebで調べてね。 この辺を説明します UML クラス図/シーケンス図 デザインパータン GoF/PoEAA 階層化アーキテクチャ DDDのサマリ 知らなきゃいけない知識が多くて面倒だね。 説明しないけど、オブジェクト指向やデータベースとかの知識も必要だよ。 説明前にDDDのページを見てみよう!!! DDDの最初のページ 「エリック・エヴァンスのドメイン駆動設計」より ??? よくわからないね さっきの図って何? 灰色の中心部分はソフトウェア設計のモデリングを表しています。 モデリ

    DDD本を読むためには前提知識が非常に多いよ - Qiita
  • 史上最強のデータベース、SurrealDB - Qiita

    SurrealDBというRust製データベースを知ったので紹介します。このデータベースはすごいです。リレーショナル、ドキュメント、グラフ、あらゆる種類のデータ構造を扱うことができ、かつインメモリ、単一ノード、分散環境、全てで動かすことができます。さらにHTTPやWebSocketによるアクセスと柔軟なユーザ認証、認可機能とがDB体に内包されており、ブラウザから直に接続するWebDBとしても使えます。とにかくなんでもできる夢のデータベースといった感じです。 特徴 機能を挙げていたら多くなりすぎたので、特に面白い部分を挙げます。 配列やオブジェクトをネストした複雑なデータ構造を持てるのに、レコードリンクという機能によりリレーションに対応していてしかもSQLやMongoDBより簡潔にクエリが書ける。 スキーマレスで各レコードには任意のフィールドを持てるが、必要ならスキーマを定義することもできる

    史上最強のデータベース、SurrealDB - Qiita
    syuu256
    syuu256 2022/10/25
  • プログラマーのための原則(2 万字) - Qiita

    はじめに 今でも語り継がれる「原則」は、それだけ価値のあるコンセプトです。 歴史を振り返ることは、失敗を防ぐための効率の良い方法になります。 👑 DRY (Don't repeat yourself) 「同じことを繰り返すな。」 Andy Hunt と Dave Thomas の著書『達人プログラマー』(1999 年)で提唱された原則で、プログラミングに関する最も重要な原則といっても過言ではありません。 DRY 原則だけでなく、どんなデザインパターンやベストプラクティスでも、同じ処理が重複することは基的に許されていません。 これにはどういう意図が込められているのでしょうか。 🔖 表面的な理由 この原則は、コードの再利用性を高め、そのために疎結合な状態を保つことは、極めて有用なことを示唆します。 1 箇所を直せば済むべき箇所をあちこちに分散させてしまうのは、自分で事故を招いているのと同

    プログラマーのための原則(2 万字) - Qiita
    syuu256
    syuu256 2022/10/17