タグ

ブックマーク / qiita.com (370)

  • たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita

    追記 先日外部向けに、この記事の内容に追加補足などを加えて発表しました。動画のアーカイブ、資料も公開しましたので、もし動画の方がわかりやすい方はこちらをオススメします。 注意: 動画の質疑の中で、 github のリリース機能が、アノテートタグを使っていると明言してしまいましたが、間違いです。gitのデータ上はただの軽量タグで、 release の内容は軽量タグに紐づく形で、 github のアプリケーション上で管理されているはずです。 はじめに 調べてもう1年放置していた内容なんですが、アドベントカレンダーで重い腰を上げました。 Gitの内部の仕組みを知りたい(動機) 毎日使うといってもいいGitですが、どうやって履歴を管理してるんだとか、よくわからないまま使っているのが急に怖くなりました。 Gitを触り始めで、よく以下のような疑問が沸くと思います。 どうやってGitは履歴を管理してるん

    たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita
    mak_in
    mak_in 2021/12/25
    良い記事。この辺りが分かってると、コマンドが怖くなくなる
  • 新言語『TypoScript』を作った - Qiita

    この記事は、クソアプリAdvent Calendar2021の20日目(ホノルル時間)の記事であると同時に、GMOペパボエンジニア Advent Calendar 2021の21日目(日時間)の記事でもあります。 みなさん、TypeScript使ってますか?TypeScriptJavaScriptの世界に秩序をもたらす素晴らしい言語ですね。 しかし世界には光の秩序だけでなく闇の混沌も必要です。 という訳で、JavaScriptに闇の混沌をもたらす新言語を作ってみました。 その名も『TypoScript』です。 TypoScript is 何 TypoScriptとは何か。まずはこちらのコードをご覧ください。 function fizz_buzz(count) { for (var i = 1; i <= caunt; i++) { if (i % 3 === 0 && i % 5 ==

    新言語『TypoScript』を作った - Qiita
    mak_in
    mak_in 2021/12/20
    「ls」を間違えて「sl」と打つと、蒸気機関車が走るやつ、じゃなかった…
  • エンジニアリングマネージャーとしての開発力向上の取り組みついて - Qiita

    スクワッド体制における留意点として、「Spotifyは "Spotifyモデル "を使っていない [3]」で以下のように述べられているように、単に方法論を真似るのではく、自分の組織と向き合い、学習して、進化し続けることが大切であると思います。READYFORにおいても日々、組織体制について議論し、改善を進めています。 ビジネスユニット、部門、チーム、マネージャーは、Spotifyの失敗した方法論に固執してはいけません。彼らはSptifyのモノマネよりも効果的に組織構造の役割と責任を伝えることができるのです。 あなたがSpotify Modelを見つけたのは、自分のチームをどのように構成するかをいつも考えていたからでしょう。でもここで止まってはいけません。学習を続けてください。 1-2. READYFORのスクワッド体制 READYFORの場合、どのようなスクワッド体制を敷いているか? ひと

    エンジニアリングマネージャーとしての開発力向上の取り組みついて - Qiita
    mak_in
    mak_in 2021/12/17
  • 30億のデバイスで任意コードが実行できちゃうJava - Qiita

    免責事項 こちらの記事で紹介する内容は、教育目的または脆弱性について仕組みを理解し周知、啓発を行うためだけに作成しております。 ぜったいに、悪用しないでください。 記載されているコードを実行した場合に発生した損害には一切責任を負いません。 理解される方のみ下にスクロールしてください。 経緯 2021/12/9にて、超有名なログ出力ライブラリであるlog4jの第2世代で任意コードが実行可能であると報告されました。 Apache Log4j2 jndi RCE#apache #rcehttps://t.co/ZDmc7S9WW7 pic.twitter.com/CdSlSCytaD — p0rz9 (@P0rZ9) December 9, 2021 ※上記は特定の文字列をログ出力させることで、ペイントツール(draw.exe)を実行している Minecraft(Java版)のチャット機能にてこ

    30億のデバイスで任意コードが実行できちゃうJava - Qiita
    mak_in
    mak_in 2021/12/12
    .NETで開発しててもライブラリ選定の時、log4jの亜種使うか否か、って場面あるけど、歴史はあるけど、細かく見てくとイマイチなので結局使ってない。
  • なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】UXUIDesignUIデザイン画面設計 1.はじめに エンジニアの私がデザインを気で勉強した結果、デザイナーとエンジニアはそもそも思考が大きく違っているということがわかりました。 今回は「それ」をデザインに苦手意識のあるエンジニア方にも理解してもらえたらと思い、わかりやすくまとめてみました。 2.アプリの画面デザインを考えてみよう まず、こんなアプリを考えてみてください。 フィットネストレーナーが使うアプリ トレーニングルームでお客様とお話しながら使う 端末はタブレット そして 会員の個人情報確認 前回までのトレーニング状況の確認 次回の予約受付 といったことをします。 使える情報としては、こんな感じです。 あなたならどう画面デザインをするか、もしお時間があったら考えてみてください。

    なぜエンジニアが作る画面はダサいのか…?「理由」と「対策」を徹底解説【エンジニア向け画面デザイン講座】 - Qiita
    mak_in
    mak_in 2021/12/11
    利用者が求めるものをクリティカルヒットしてこそ効果が出る、だがシステム作りたい人と利用者が違うので読みきれない、のでインタビューして改善しながら寄せてく、という特性から請負の業務システムと相性悪い印象
  • DynamoDB の設計について考えてみる。 - Qiita

    Amazon DynamoDB の特性 フルマネージド型の NoSQL データベースサービス 3つの Availability Zone に保存されるので信頼性が高い 性能要件に応じて、テーブルごとにスループットキャパシティを定義するキャパシティの Auto Scaling、オンデマンドキャパシティといった設定も可能 ストレージの容量制限がない DynamoDB のテーブル DynamoDB におけるテーブルはRDBMSにおけるテーブルと概念が異なります。 テーブルを作成する際に、Primary Key を指定する必要があります。 Primary Key はテーブルの各項目を一意に識別するために使います。Primary Key は、Partition Key および Sort Key で構成されます。(Sort KeyがなくPartition Keyのみの場合もあります) Item は R

    DynamoDB の設計について考えてみる。 - Qiita
    mak_in
    mak_in 2021/12/10
  • ググり力、それはエンジニアには必須の能力である - Qiita

    ググり力、それはエンジニアにとっては 必須の能力 になりつつあると思います。 さて、皆さんは自分のググり力で欲しい情報にちゃんとたどり着けると言えますか? @Yametaro さんからのお題です。 ある日、コードレビュー中ワイ ワイ「さぁ、今日も同僚のコードをレビューしていくでぇ」 ワイ「まずは新卒のT君のコードを読んでいこか」 ワイ「どれどれ…」 ワイ「ん?なんやこの??っていう書き方は…?」 ワイ「ググってみよか…」 ワイ「JavaScript ??と入力して、検索ボタンをポチッとな」 ワイ「…あれ?それらしい検索結果が出てこんな…」 ワイ「ぐぬぬ、記号関係はググりづらいこともあるんやな…」 ワイ「これじゃあ今日はもう、酒飲んで寝るしかないやないか…」 〜飲酒、そして就寝へ…〜 では JavaScript で ?? の検索方法はどうしたらいいのか? ここに1つの解答を示しておきます!

    ググり力、それはエンジニアには必須の能力である - Qiita
    mak_in
    mak_in 2021/12/09
  • 設計を歪める認知バイアス - Qiita

    こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2021 、5日目の記事です。 これはなに? ソフトウェア開発において、設計をないがしろにすると、低凝集密結合な構造に陥り、変更容易性が低下してしまいます。 設計スキルを高め、あるべき構造を設計する……これで解決できるに越したことはありません。 しかし、認知バイアスと呼ばれる心理効果により判断を誤り、良くない設計をしてしまうことが往々にしてあります。 記事は、設計を歪めてしまう認知バイアスを理解し、設計判断の精度向上を促すことを目的とします。 この記事のゴール 人間の判断を歪めてしまう心理効果「認知バイアス」の存在を知ること。 ソフトウェア設計も、認知バイアスの悪影響を受けてしまうこと。 認知バイアスに振り回されない設計アプローチを身につけること。 認知バイアスとは 先入観や思い込み、偏

    設計を歪める認知バイアス - Qiita
    mak_in
    mak_in 2021/12/05
  • 本当のメタバースについて知ってほしい。 - Qiita

    メタバース有識者」の話があまりにもくだらない。 偉そうに話しているが、あれもこれも全部実現している。 良くてもVRChat止まりで、それ以外の実情を分かっていない。 当のメタバースについて、書き殴ってみようと思う お前は誰? ただの一般人だ。ただし現実よりVRに生きているかもしれない。 プレイ時間はVRChat:500時間、NeosVR:1900時間である。 他にclusterでもイベントを主催したりワールドアップしている。 VRの中で飲み、踊り、寝る ゴーグルを被ったまま酒を飲んで、DJをして、音に合わせて楽しく踊る。 疲れたらそのまま寝る、もちろんゴーグルを被ったまま。 メイド喫茶やホストクラブ、ラジオ体操にゲーム。 悩み相談をしたり、恋愛をしたり、旅行にも行ける。 これはVRSNSの日常風景だ。 ここまではおそらく、多くの方が想像しているメタバースだろう。 知ってほしいのはここか

    本当のメタバースについて知ってほしい。 - Qiita
    mak_in
    mak_in 2021/11/20
    うちの子どもらの様子見てると、VRじゃなくてスマホだけど、Robloxがメタバース的な感覚でどっぷり遊んでる感じに見える。ごっこ遊びとデフォルメに、大人よりも抵抗がなく、意味が強いからかも。
  • できないエンジニアの特徴 - Qiita

    エンジニア単価表の記事はこちら! はじめに 社会人になってから数年。数々の失敗を目撃 & 体験をしてきました。 その教訓で、改善すればより仕事も人間関係も円滑に進み、エンジニアとしても成長できるだろうなというネガティブな点をまとめてみました。 僕も過去できていなかったり、今もできていないところはありますが、反面教師として伝えられたらと思います。 特徴 1.納期に間に合わない時、自分から報告してこない 明確に期日が共有できているのにも関わらず、直前もしくは遅れる旨を報告してこないパターンです。 責任感がない人に多い気がします。実力不足であったり、実装していくうちにタスクの見積もりがずれることもあるので勇気を持って報告しましょう! 2.タスク分解しないで、仕事し始める 機能実装のような中規模以上のタスクは、DB変更など下のレイヤーが間違っているとその上位の実装も全て修正しなくてはいけなくなりま

    できないエンジニアの特徴 - Qiita
    mak_in
    mak_in 2021/11/03
    こういうの、だいたいチームのせいでこうなる場合がほとんど。そして、三つ子の魂百まで、じゃないが若い頃からそういう環境にいると、どの環境にいっても習慣付いてしまう。僕は負の連鎖は断ち切りたいと思ってるよ
  • C# のテストフレームワークを MSTest から xUnit.net に乗り換えたい時にその理由を同僚に説明できるようにする - Qiita

    C# のテストフレームワークを MSTest から xUnit.net に乗り換えたい時にその理由を同僚に説明できるようにするMicrosoftC#テスト はじめに C#の有名なテストフレームワークは、MSTest、NUnit、xUnitの3つがあります。 xUnitが一番人気があります。 稿は、現在MSTestを利用していて、人気のあるxUnitに乗り換えたいという人が、乗り換える価値があるということをチームメンバーに理解してもらうための記事です。 xUnit とは Microsoftの以下のページから、xUnitの概要を抜粋します。 .NET でのテスト .NET 用の無料のオープン ソースのコミュニティ向け単体テスト ツールです。 xUnit.net は、NUnit v2 の最初の発明者によって記述された、.NET アプリを単体テストする最新のテクノロジです。 xUnit.net

    C# のテストフレームワークを MSTest から xUnit.net に乗り換えたい時にその理由を同僚に説明できるようにする - Qiita
    mak_in
    mak_in 2021/10/28
    xUnitって良い意味でも悪い意味でも原理原則の理想に沿ってる。実行順序はランダムで制御できない、assertはケースごとにデータ分けるべきでエラーメッセージなど出せない、などがあったような。今はどうなんだろう
  • 「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまで - Qiita

    「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまでC#DIDependencyInjection依存性の注入 DIはインタフェース定義しなくても十分実用的だし、むしろそっちの方が質だよ、という話をします。C#や.NETを使っていますが、それに限らず普遍的な内容です。 インタフェースと実装に分けるとか無理。DIなど不要! 中堅社員のA氏は、「DIっていちいち実装とインタフェース分けないとダメなんでしょ?。さすがにやってられんわ」と言って頑なにDIを導入しようとしません。 DIはテスタビリティと併せて語られることが多かった為か、A氏は「注入するクラスは基的にインタフェース定義しましょう」という記事ばかりを読んでいたのです。 インタフェースと実装を分けるとは、例えば次のような事です。 services.AddScoped

    「DI使うとインタフェース地獄に陥るらしいから使いたくない」と言っていたA氏がインタフェースを使わずにDIで幸せになるまで - Qiita
    mak_in
    mak_in 2021/10/20
    interfaceへの拒否感からか、DIとDIコンテナの話が混じった状態で色々突っ切ってしまった話に読めた。昔からオブジェクト指向の説明で使われがちの動物-犬猫のようなケースも、継承よりもinterface使った方がいい場面は多い
  • M5StackでCO2モニターを作って、データ可視化と換気を促す通知するものを Azure IoT Central で作ってみた - Qiita

    M5StackでCO2モニターを作って、データ可視化と換気を促す通知するものを Azure IoT Central で作ってみたAzureIoTM5stackAzureIoTCentralQiitaAzure はじめに 以前にM5StackでCO2モニターを作って、直接Teamsに通知するものを作ったのですが、 『M5StackでCO2モニターを作って、Teams通知で換気を促すものを作ってみた』 CO2濃度が高くなると通知が来るけど、その傾向が良く分からない テレワークが増えてくると、いま職場の状況がどうなのかが遠隔で分からない 換気を促す通知は来てるけど、いまいち上手く活用できてない(されてない)気がする という辺りが少し課題かなと思っていました。 なので、今回は上記を解決する為、「M5Stackで作ったCO2モニター」 と 「Azure IoT Central」 を連携させることで、

    M5StackでCO2モニターを作って、データ可視化と換気を促す通知するものを Azure IoT Central で作ってみた - Qiita
    mak_in
    mak_in 2021/09/21
  • スケールする要求を支える仕様の「意図」と「直交性」 - Qiita

    はじめに どんなソフトウェアエンジニアも拡張しやすくメンテナンスしやすいソフトウェアを作りたいと思っているはずです。また、どんなプロダクトマネージャも同様に拡張しやすいシンプルな要求を作りたいと考えているはずです。 しかし、将来の不確実性や発展性に対して見通しを立てるのは難しいものです。そのため、開発チームの思いとは裏腹にソフトウェアの複雑性はどんどんと増大していきます。気がついたら技術的負債と呼ばれるような手もつけられない泥団子になってしまうということもしばしばです。誰もが生産性を下げるために機能を追加したいわけではなく、ビジネス価値を提供するために機能を追加したいだけなのにです。 このような状況を避けるためにはどうしたらよいのでしょうか。今回はその一つの手段として、要求には隠れた「意図」があり、それを発見していくことの重要性についてまずはお話しします。さらにわかりやすい要求が持つ仕様の

    スケールする要求を支える仕様の「意図」と「直交性」 - Qiita
    mak_in
    mak_in 2021/07/06
  • 綺麗なコミットログを作りたいときのgitテクニック - Qiita

    これは何 僕は開発作業をしているとき、PRをあげるまでの開発途中はwipコミットに変更を記録していき、最後にコミットを仕上げていくような作業をよくします。 初めからコミットを綺麗に書きながら開発ができれば良いのですが、 にあるようなコミットログを仕上げていこうと思うとどうしても最後にコミットログを整理したくなります。 この記事はこのようにgitを使うと綺麗なコミットログを作れるよ、というTipsです。 具体的にこういうコミットを作ると良いよ、みたいな話はこの記事ではしません。 僕はこのような工程でPRを出す前にコミットログを作っています。 git rebase -iで作業中のコミットを全て一つのコミットにsquashする git reset HEAD~で一度コミットを取り消す git add -pで作りたいコミットごとに変更をstageにあげていく コミットを作成する git rebase

    綺麗なコミットログを作りたいときのgitテクニック - Qiita
    mak_in
    mak_in 2021/06/21
    昔は真面目に考えてたけど、プルリクをマージする時に真面目にコメント書けばいいじゃん、ってなって諦めた。 しくじって消えたら元も子もないし、汚くても思考のプロセスも見えるから、いいかな、と。
  • 「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita

    物語の始まり 事の発端は納品後。 先方からメッセージが届きました。 クライアント様「このファイルの文字コードがShift_JISになっておりますので、UTF-8で再納品をお願いいたします。」 拙者(あれ…UTF-8にしてたと思うんだけどな) 拙者「確認いたします。」 文字コードを確認する 案件はいわゆる更新案件で、今回の納品時に言われていたのは、「文字コードがUTF-8ではないものは変換して納品してくれ」ということ。 そして、ご指摘いただいたのは、今回の更新案件で中身はいじらなかったJavaScriptファイル。 来ならば納品するファイルではないのですが、文字コード変換という要件があったため、納品ファイルとして加えられたものでした。 一括で文字コードを変えたので作業漏れかなぁと思っていました。 ファイルの中身は記事用にかなり適当につくったものですが、まあだいたいこんな感じです。

    「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita
    mak_in
    mak_in 2021/04/03
    文字コードうんぬんよりも、これまでの信頼関係が全然できてないせいじゃないの?と思ったのだが…使わないという対応含め怪しい感じがしたまま完了できてるのは、信頼関係の不備を象徴してる気が…そんなもんなの?
  • 「正直9年経ったいまでもfor文ググってる」 - Qiita

    「正直9年経ったいまでもfor文ググってる」 という議論記事があった。正直なところ私もググる方の人だ。私の感想: ポンとテキストエディタだけ渡された時に書けるか自信ないぞ...IDEがあればまあ大丈夫かなあ。 JavaScriptだけじゃない。言語色々扱うしという言い訳。正規表現とか毎度調べる。 だから世の中にチートシートというものがあるのだ。お気に入りチートシート多数。 実戦でどうしているか?結局周りのソースを見て馴染む書き方にしていますよ多分。 暗記するかしないかは受験勉強みたいなもので、コーディング面接に受かるなら必要。暗記そのものには意味はないとは思う。 競技プログラミングが使えないとかいう論もあったな。 ググり力も大事。 でも「最低限」もできないのはやはり恥ずかしい気持ちはある。 なんかこれ英語できるできないと似てるな。英語なんてGoogle翻訳、DeepL翻訳あればいいけど、実

    「正直9年経ったいまでもfor文ググってる」 - Qiita
    mak_in
    mak_in 2021/03/25
    forもだけど、datetimeもよく調べる。書き方、と言うよりも、仕様が言語やフレームワークによって微妙に違うので。
  • モダンプログラマになれない組込みプログラマの苦悩 - Qiita

    はじめに 10年以上組込みエンジニアをしている@yagisawaです。 Qiitaのトップ記事では新しいフレームワークの使い方とかモダン言語の新しい言語仕様の解説とかが流れてきて、いつも羨ましいなーと思いながら読んでいます。 記事は組込みシステム開発をしていて経験したこと・感じたことを自虐ネタとして書き連ねていこうと思います。他ITエンジニアの人に「うわっ、可愛そう」って思ってもらうのが目標です(ぇ 各業界それぞれに悩みはあると思うので、自分たちが一番不幸とかは思っていません。おそらく隣の芝が青く見えているだけです。それよりあまり組込みの記事は見かけないので、「組込みエンジニア仕事ってこんな感じ」というのを知ってもらう意図があったりします。 内容によっては「それはあなたの設計が悪いからです」と言われてしまうようなところもあるとは思いますが、建設的なご意見は大歓迎ですが基は温かい目で見

    モダンプログラマになれない組込みプログラマの苦悩 - Qiita
    mak_in
    mak_in 2021/03/18
  • 【Windows 10版でどこまでできるか】Power Automate Desktop のライセンスやできることや気になることまとめ【随時更新】 - Qiita

    Windows 10版でどこまでできるか】Power Automate Desktop のライセンスやできることや気になることまとめ【随時更新】AzureRPAPowerAutomateDesktopQiitaAzure はじめに 2021年のMicrosoft Igniteの発表でPower Automate Desktop が追加費用なしでWindows10ユーザーにて利用可能になりました。 大きな反響がある発表でしたが、デジタルプロセスの自動化を実行するPower Automate は以前から存在しており、また、2020年からPower Automate の有償プランの一部でPower Automate Desktop は利用できていました。 記事では、Windows 10 や Windows 11 で追加費用なしで使用できるPower Automate Desktop について

    【Windows 10版でどこまでできるか】Power Automate Desktop のライセンスやできることや気になることまとめ【随時更新】 - Qiita
    mak_in
    mak_in 2021/03/07
  • マイクロサービスアーキテクチャの経済と適応度 - Qiita

    はじめに マイクロサービスアーキテクチャは、独立してデプロイ可能で疎結合サブシステム群によってサービス開発を行うというアーキテクチャパターンです。現在のソフトウェアサービス開発では欠かすことができない考え方です。 従来では一定のコストが掛かり、またパフォーマンス上の問題もあったため、必要に応じての分割には難しい側面も多かったのですが、様々なエコシステムの発達によってわずかな機会費用で実現できるようになってきました。もちろん分散システムとしての質的な難しさやアーキテクチャの移行の質的な難しさは解決したわけではありませんが、手軽にコンテナレベルで分割された様々なサービスを作成することのコストは急速に下がってきました。 これらが、うまくサブドメイン境界によって分割されることで、ある開発チームが知らなければならない情報が制限されるため、スピード感のある開発力を維持しながら開発組織のスケールでき

    マイクロサービスアーキテクチャの経済と適応度 - Qiita
    mak_in
    mak_in 2021/03/06