タグ

2022年12月10日のブックマーク (42件)

  • トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016

    トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016 数年前にNoSQLが登場した当時、NoSQLにはデータの一貫性を保証してくれるトランザクション機能などが十分に備わっていないため、業務システムのバックエンドとして使うのは容易ではないと考えられていました。 しかしその後、NoSQLをバックエンドにした業務アプリケーションは現実にはいくつか登場してきています。ワークスアプリケーションズが2014年に発表したERPの「HUE」もCassandraをバックエンドに採用した、格的な業務アプリケーションです。 そのHUEの開発に関わるスタッフが、どういう実装ならばNoSQLが業務アプリケーションのバックエンドに使えるのか、それにはどういう意味があるのか、などについて議論したセッション「

    トランザクションの実装にはRDB/NoSQLにかかわらず教科書的な定番がある~業務システムをRDBなしで作れるのか?(前編) エンジニアサポートCROSS 2016
    knj2918
    knj2918 2022/12/10
  • バッチ処理の改善〜トランザクション範囲の最小化〜 - Timee Product Team Blog

    後編(冪等性の設計導入)へ はじめに こんにちは。タイミーのバックエンドエンジニアの中野です。よくGopherくんに似てると言われます。 記事では月次で実行している「締め」のバッチ処理に関する一連の技術的改善について掲載します。弊社のプロダクト「タイミー」は著しい事業成長に伴いデータ量が急増してきています。そこで今回はデータ量の急増を背景とした中長期的なバッチ処理の設計改善にどのように取り組んできたのかをご紹介したいと思います。バッチ処理に関する技術的改善の記事は前編・後編の2部構成をとっています。前編はバッチ処理におけるトランザクションの改善をテーマに、後編ではバッチ処理に冪等性の設計を導入したことをご紹介したいと思います。 今回は前編のトランザクションの改善をテーマにご紹介します。すでに番稼働しているアプリケーションにおいてトランザクションの範囲が大きい場合にどのような問題が発生し

    バッチ処理の改善〜トランザクション範囲の最小化〜 - Timee Product Team Blog
  • 【感想】『Clean Craftsmanship 規律、基準、倫理』:ボブおじさんの熱い職人魂本 - Rのつく財団入り口

    オレたちのUncle Bobが帰ってきた! ITエンジニアが読むべき名著にオールタイムで名前が上がるCleanシリーズ。作者はアジャイルマニフェストのその場にいた一人でもあるロバート・C・マーチン御大、通称Uncle Bob。→Wikipedia: Robert C. Martin, プログラマが知るべき97のこと 『Clean Agile』に続く書は、クラフトマンシップをもったプロのエンジニアであろうという在り方をメインに述べ、過去の一連ので述べられてきた主張も含めた集大成的なになっています。 おおお...あのシリーズに続きが出た...ということで震えながら読んだので以下読書記録です。 オレたちのUncle Bobが帰ってきた! 第I部 規律 第1章 クラフトマンシップ 第2章 テスト駆動開発 第3章 テスト駆動開発応用 第4章 テスト設計 第5章 リファクタリング 第6章 シンプ

    【感想】『Clean Craftsmanship 規律、基準、倫理』:ボブおじさんの熱い職人魂本 - Rのつく財団入り口
  • Goでダブルポインタを知った話 - カミナシ エンジニアブログ

    こんにちは。カミナシ ソフトウェアエンジニアのAomanです。 最近ちょこちょこアルゴリズムやデータ構造、Goのキャッチアップしています。 そんな中、go.devのブログ Go blog のとある記事でダブルポインタを使用するコードに出会いました。筆者は今まで、RubyJavaScript/TypeScriptなどの言語を多く触っていたためか、お恥ずかしながらダブルポインタを使うコードを初めて見たので「なんなのだこれは…」と戸惑いました。記事ではそんなダブルポインタが使われていたコードについて、簡単にご紹介したいと思います。 そもそもダブルポインタとは? その名の通りポインタのポインタのことなのですが、わからない方は下記の記事がわかりやすくまとまっており参考になると思います。 daeudaeu.com ダブルポインタと聞いて、まずはじめに思った感想は「そんなもの必要?」です。今まで使っ

    Goでダブルポインタを知った話 - カミナシ エンジニアブログ
    knj2918
    knj2918 2022/12/10
  • 皆で楽しく成長するためのペアプログラミングとモブプログラミングのガイドライン - Qiita

    1. はじめに 稿は、ペアプログラミングとモブプログラミング(以降、ペアプロ・モブプロと表記)について、私のチームでのガイドラインを紹介します。執筆時点でのペアプロ・モブプロ歴は4年です。 私のチームは若手が多く、「ハピネスチームビルディング」という皆が主体的に楽しく成長しながら開発するという取り組みをしているため、「メンバーが楽しく成長する事」を重視している点が、普通のやり方と少し異なります。 ハピネスチームビルディングの詳細は、ITエンジニア向け月刊誌「Software Design」で連載してますので、そのWeb公開版の以下を参照ください。 ハピネスチームビルディング連載記事一覧 ペアプロ・モブプロは、楽しく成長するために、とても有効な手段なので、この記事が少しでもその役に立てば幸いです。 なお、ペアプロとモププロは異なる特性がありますが、この記事では共通のガイドラインを説明する便

    皆で楽しく成長するためのペアプログラミングとモブプログラミングのガイドライン - Qiita
  • チャンスは待たずに自分で作る ─ ソフトウェアエンジニアが「好きな技術」で生きていくための技術とは - Findy Engineer Lab

    Go Conferenceなどを運営する一般社団法人Gophers Japanで代表理事を務める上田拓也(@tenntenn)です。学生時代にGoと出会って以来、10年以上Goコミュニティの運営に関わっています。 読者のみなさんはソフトウェアエンジニアだったり、ソフトウェアエンジニアを目指している方が多いでしょう。そのため、普段使ってるプログラミング言語やエディタ、開発環境、OS、クラウドベンダーなどにはお気に入りがあるかと思います。しかし、いくらお気に入りだからといって、最初からその技術を極め、仕事にして人生を賭けようとはなかなか思わないでしょう。筆者もそうでした。 稿では、筆者がどのように好きな技術Go)と出会い、コミュニティ活動を行いながら、仕事として活動できるようにしてきたのかを紹介します。読者のみなさんに、ソフトウェアエンジニアとして「好きな技術を突き詰める道もあるんだな」と

    チャンスは待たずに自分で作る ─ ソフトウェアエンジニアが「好きな技術」で生きていくための技術とは - Findy Engineer Lab
  • 打ちのめされても健気に立ち上がる「線人間」、ユカイ工学から

    関連記事 しっぽロボットに“プチ”登場 音や声に反応、ペットのような“鼓動音”も コミュニケーションロボットなどを手掛けるするユカイ工学が、しっぽのついた丸いクッション型ロボット「Petit Qoobo」(プチ・クーボ)を12月19日に発売する。価格は9000円(税別)。 ロボットにあえて“足りない部分”を作る理由 ヒトとロボットのコミュニケーションのためにメーカー3社が考えた方法 ヒトとロボットのコミュニケーションはどのように起き、ロボットはどのようにして家庭に受け入れられていくのか。「CEATEC 2020」の講演でロボットメーカーの3社がヒトとロボットのコミュニケーションの在り方について対談した。 ウルトラマン庵野が帰ってきた 「DAICONFILM版 帰ってきたウルトラマン」アマプラでサプライズ配信 自主制作特撮作品「DAICONFILM版 帰ってきたウルトラマン」の配信が「Ama

    打ちのめされても健気に立ち上がる「線人間」、ユカイ工学から
    knj2918
    knj2918 2022/12/10
  • いいチームづくりのために重要な“関係の質”の改善 味方を増やすための「失敗してみる」挑戦

    XPユーザグループ(XPJUG)が主催になり、毎年秋に開催されている「XP祭り」。ここでKDDIアジャイル開発センター株式会社の小糸氏、三宅氏が登壇。まずは、マージンを積んでしまう問題と、ステークホルダーの過剰な期待・マネージャーとの距離がある問題に対する対策と、その結果得られたことを紹介します。 「いいチーム」とは 小糸悠平氏(以下、小糸):では「いいチームを作りたい!!〜関係の質を改善するために私たちがやったこと〜」というテーマで話します。よろしくお願いします。 三宅潤也氏(以下、三宅):お願いします。 小糸:最初にみなさんに共有してみたいことがあったので、話したいと思います。(スライドを示して)先ほどスライドを差し込みました。私はふだん関東に住んでいますが、今は阪急梅田駅の「テレキューブ」という場所、写真でいうと一番左側の場所で作業をしています。 外を見るとものすごくたくさんの人

    いいチームづくりのために重要な“関係の質”の改善 味方を増やすための「失敗してみる」挑戦
  • 「読みやすいコードのガイドライン―持続可能なソフトウェア開発のために」を読んだ! - mochikoAsTechのdig日記

    先日、社内で技術書に関するイベントが行われた。執筆経験を持つ社内のエンジニア諸氏から話を聞ける、という面白そうなイベントだったので有難く参加してきたんだけど、そこで質問を投げたところ、著者である石川さんからご厚意でこちらのを頂戴した。 ばばーん!「読みやすいコードのガイドライン―持続可能なソフトウェア開発のために」です! gihyo.jp 実はもともとこのツイートを見て気になっていたんだけど、「私には難しすぎるんでは…」とためらって買っていなかっただったので、とてもうれしい! クライアント開発を担当している石川宗寿が執筆した「読みやすいコードのガイドライン -持続可能なソフトウェア開発のために」が10月22日に発売されます。 著者に執筆のきっかけやこだわった点などをインタビューしましたので、書籍情報とあわせてぜひご覧ください。https://t.co/5e7n9UZ2Oz— LINE

    「読みやすいコードのガイドライン―持続可能なソフトウェア開発のために」を読んだ! - mochikoAsTechのdig日記
    knj2918
    knj2918 2022/12/10
  • 【特集】 【2022年版】デスク周りを快適にする便利グッズ10選

    【特集】 【2022年版】デスク周りを快適にする便利グッズ10選
    knj2918
    knj2918 2022/12/10
  • 正しいことは、正しく言わないと、正しく伝わらない - 下林明正のブログ

    SNSを見ていたり人の話を聞いたりしていると、「職場で攻撃的な物言いをしてくる人に困っている」ということがある。 攻撃的な物言いをされる側は気分が落ち込んで生産性が下がったり、最悪退職してしまう。 そして攻撃的な物言いをする側は、いくら指摘しても態度を改めない、というもの。 割と長期間に渡ってそういう話を見聞きしてきて自分なりに思うことがあったので、書いておく。 攻撃的な物言いをするメリットはほぼ無いはず 言われる側の心構え 攻撃的な物言いをするメリットはほぼ無いはず 何かを指摘する際の目的は何なのかと考えてみると、指摘をすること自体は目的ではなくて、大体は相手に素早く正しく動いてもらうことが目的だと思う。 その観点で最適な指摘の仕方を考えてみたときに、当に攻撃的な物言いが最適だと思えるならそうしたらいい。 けど、多くの場合は相手の反発感情を煽って咀嚼に余計なエネルギーを要したり、最悪怒

    正しいことは、正しく言わないと、正しく伝わらない - 下林明正のブログ
    knj2918
    knj2918 2022/12/10
  • 授けるべきは、ゲームの禁止ではなく、ゲームの規律だと思います

    近年、ゲーム障害やゲーム依存といった言葉が聞かれ、親御さんが「うちの子どももゲーム障害になってしまうのでは?」と心配していることも多いようですね。 もっともな心配ではあります。その定義からいっても、ゲーム障害になった子どもはゲームを上手にやめられなくなってしまい、学業や社会関係に悪影響を受けてしまうわけですから。 私が経験した、ゲーム障害の診断基準に当てはまりそうな数少ない患者さんを思い出すと、コントローラを投げるぐらいはマシなほうで、ディスプレイを破壊する、家族に暴力を振るう、等々も併発してしまって、ただのゲーム好き、ただのゲームオタクとは一線を画していました。 とはいえ、そこまで明確にゲーム人生が悪くなっている患者さんが巷に溢れているかといったら、どうでしょう? 依存症の専門治療施設や児童思春期の専門施設だったなら、ゲーム障害の診断基準にまさに当てはまり、そのように診断するのがふさわ

    授けるべきは、ゲームの禁止ではなく、ゲームの規律だと思います
  • 熱海でしか見れない、ユニークな町並みがある

    熱海は日を代表する温泉地だ。 その名声は徳川家康の入湯からはじまり、かつての新婚旅行や社員旅行ブーム、バブル期のリゾートマンション建設、現在のレトロブームなど、時代を越えて栄えてきた。 そんな大熱海だけれど、まだあまり注目されていないユニークさがあると思う。 ここにしかないレトロな町並みだ。 レトロはレトロでも、ハードでソリッドでモダンな、純度の高い60年代の町並みである。 まずは見て欲しい、ありそうでない熱海の町並み 斜面に立ち並ぶリゾートマンションやホテル群。写真の中央、山の中腹に熱海駅はある 熱海は山から海へと駆けおりる、急な斜面につくられた街だ。 平地はすくなく、うねうねとカーブする坂道が海岸線へと続いていく。 1967年竣工の熱海第一ビルは50年以上、熱海駅前のランドマークであり続ける 今回とりあげる町並みは、そんな熱海駅から平和通り名店街を抜けて、ニューフジヤホテルへと下って

    熱海でしか見れない、ユニークな町並みがある
    knj2918
    knj2918 2022/12/10
  • 開発に使える脆弱性スキャンツール - NTT Communications Engineers' Blog

    この記事は、 NTT Communications Advent Calendar 2022 7日目の記事です。 はじめに こんにちは、イノベーションセンター所属の志村と申します。 「Metemcyber」プロジェクトで脅威インテリジェンスに関する内製開発や、「NA4Sec」プロジェクトで攻撃インフラの解明・撲滅に関する技術開発を担当しています。 今回は「開発に使える脆弱性スキャンツール」をテーマに、GitHub Dependabot, Trivy, Grypeといったツールの紹介をさせていただきます。 脆弱性の原因とSCAによるスキャン 現在のソフトウェア開発は、多くのOSSを含む外部のソフトウェアに依存しています。PythonGo、npm など多くの言語は、様々なソフトウェアをパッケージとして利用できるエコシステムを提供しており、この仕組みを利用してOSSなどのコンポーネントをソフト

    開発に使える脆弱性スキャンツール - NTT Communications Engineers' Blog
  • Pythonで学ぶ衛星データ解析基礎 ――環境変化を定量的に把握しよう

    2022年12月19日紙版発売 2022年12月15日電子版発売 田中康平,田村賢哉,玉置慎吾 著,宮﨑浩之 監修 B5変形判/352ページ 定価3,520円(体3,200円+税10%) ISBN 978-4-297-13232-3 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 書のサポートページサンプルファイルのダウンロードや正誤表など このの概要 書籍は,Pythonによる衛星データ解析に興味がある初学者に向けた入門書となっています。学校の情報の授業等で利用する際の副教材になることを意識し,衛星データだけでなくデータサイエンスの基礎的な内容も含めました。学校で地球環境やご自身が住んでいる地域がどのように変化しているか調べたい方は

    Pythonで学ぶ衛星データ解析基礎 ――環境変化を定量的に把握しよう
    knj2918
    knj2918 2022/12/10
  • 大言壮語得意な人に限って、マネジメントできないし、プレイングもできないんだなぁ、ということを学んだ3カ月

    昔、3カ月だけとあるベンチャーで働いていた。 その会社は、まだ赤字だが半年前に2億円を調達しており(ベンチャー投資の景気が良い時代)、これから組織を拡大していくので、現在、社長が見ている財務・経理業務のうちまずは経理業務を引き継ぎ、ゆくゆくは財務全般を見て欲しい、と言われた。社員数は10人ほどで先任社員はおらず、社長から直接引継ぎを受けた。 ※新人が金に携わることなんてありえないと思われるかもしれないが、ネットバンクの権限設定で振込は社長承認が必要であり、社内の小口現金も数万円ぐらいなのでリスクは少ない 入社前は、社員数10人だと固定費は1000万円ぐらいで、2億円を使って2年弱で売上を上げつつ、次のステージに進むと考えれば非常に妥当性があるなと思っていたが、ふたを開けたら大きく違っていた。 箇条書きで書くと、 ・社長が仕事をしない 売上に繋がる仕事は一切せず、どこぞのマイナーな雑誌やWE

    大言壮語得意な人に限って、マネジメントできないし、プレイングもできないんだなぁ、ということを学んだ3カ月
    knj2918
    knj2918 2022/12/10
  • パイプライン指向JSON処理プログラミング言語 jq - 檜山正幸のキマイラ飼育記 (はてなBlog)

    jq(https://stedolan.github.io/jq/)の紹介では、「JSON処理のワンライナー〈一行野郎〉としてめちゃくちゃ便利!」とアピールするのが定番です。もちろんそれは当で、「めちゃくちゃ便利!」です。が、実は jq は、ワンライナー記述にとどまらない、かなり格的なプログラミング言語です。 JSON処理のためのDSL〈Domain Specific Language | 領域特化言語〉なので、汎用言語ではありません。しかし、汎用言語が備えている言語機能の一部(関数定義、モジュールシステムなど)を jq も持っています。また jq は、独特で楽しいプログラミング・パラダイム -- “パイプライン指向”に基づいて設計されています。 この記事では、ワンライナーを超えた jq の使い方と、プログラミング言語としての jq の特徴を紹介します。長い記事になってしまったので、一

    パイプライン指向JSON処理プログラミング言語 jq - 檜山正幸のキマイラ飼育記 (はてなBlog)
  • ワールドカップ アルゼンチンがPK戦制しベスト4 オランダ下す | NHK

    サッカーワールドカップカタール大会、決勝トーナメントの準々決勝、オランダ対アルゼンチンは、2対2のまま延長戦でも決着がつかず、ペナルティーキック戦の末、アルゼンチンが2大会ぶりにベスト4に進みました。 1986年のメキシコ大会以来、36年ぶりの優勝を目指す世界ランキング3位のアルゼンチンと初優勝をねらう世界8位のオランダの試合は、カタールの首都、ドーハ近くにあるルサイルスタジアムで日時間の10日、午前4時から行われました。 試合は、アルゼンチンのエースで今大会を最後のワールドカップと位置づけて臨んでいるリオネル・メッシ選手が序盤から攻撃の軸として躍動し、前半35分、メッシ選手の巧みなスルーパスをゴール前に駆け上がったディフェンダーのナウエル・モリナ選手が蹴り込んで先制ゴールを奪いました。 後半28分には、マルコス・アクーニャ選手がゴール前で倒されて獲得したペナルティーキックをメッシ選手が

    ワールドカップ アルゼンチンがPK戦制しベスト4 オランダ下す | NHK
    knj2918
    knj2918 2022/12/10
  • 機能開発タスクの設計資料のテンプレートを作成してみたら、担当機能をもっと愛せるようになった - Qiita

    はじめに この記事は「株式会社ビットキー Advent Calendar 2022」 9日目の記事です。 今回はWork & Experience Product所属の@usu_shinが担当します! ビットキーでは日々多くの機能開発が行われています。その中で発生する"設計"という工程でどう考えていくのが良いのかを型化し、設計資料のテンプレートとして表現したので、この記事ではそのテンプレートを紹介させていただきます。またテンプレート作成の副次的効果によって、担当する機能に愛情を注げるようになったというところも少しだけ話をさせていただきます。 この記事でいう設計とは この記事ではアサインされた機能開発タスクをどのように理解し、どのような手法で完了まで持っていくかを決定していく作業を設計と呼んでいます。 実装上の技術的決定を行う行為を指す設計よりも広義な意味で設計という言葉を使用しておりますの

    機能開発タスクの設計資料のテンプレートを作成してみたら、担当機能をもっと愛せるようになった - Qiita
    knj2918
    knj2918 2022/12/10
  • 目的別クラウド構成と料金試算例 | AWS

    アマゾン ウェブ サービス(AWS)は、開発環境としてはもちろん、ウェブサイト・ウェブアプリケーションからファイルサーバー、社内業務アプリケーション、動画配信、IoT、AI/機械学習までにいたるまで、数多くの用途で活用されています。 ここでは、お客様の目的別に応じた 30 の代表的な構成とその試算例を基礎的なものから応用したのまで幅広く紹介します。導入検討時の情報として是非ご活用ください。

    目的別クラウド構成と料金試算例 | AWS
  • お前らのpandasの使い方は間違っている - Qiita

    この記事は株式会社Nuco Advent Calendar 2022の9日目の記事です。 はじめに いきなりお馴染みの「キャッチーでウィットでセンセーショナルな」タイトルで失礼します。 私自身、業務の中でpandasに大変お世話になっており、自戒も込めてpandasの「アンチパターン」をまとめてみました。 この記事を読んで、より快適なpandasライフを送っていただけると嬉しいです。 対象読者 Pythonを使ったデータ分析機械学習に携わる方 この記事はpandasの基的な使い方を解説するものではないので注意してください。 表形式ファイルを加工する必要がある方 pandasの強みはリレーショナルなデータ全般です。必ずしもデータ分析機械学習だけが守備範囲ではありません。 pandasとは pandasの公式ドキュメントの概要には、以下のように記載してあります。 pandas is a

    お前らのpandasの使い方は間違っている - Qiita
  • 茹でた鶏胸肉にかけて食べると美味しいものってない?

    ポン酢しか思いつかん。 もう飽きたよ。

    茹でた鶏胸肉にかけて食べると美味しいものってない?
  • 睡眠の量や深さ 脳の別部位で制御 初めて明らかに 筑波大など | NHK

    健康に欠かせない睡眠。 その量や深さは脳の別々の部位で制御されていることなどを筑波大学などの研究グループが世界で初めて明らかにしたと発表しました。 研究グループは、睡眠障害の治療法などの開発につながる成果だとしています。 研究結果は筑波大学・国際統合睡眠医科学研究機構の柳沢正史機構長と東邦大学大学院医学研究科の船戸弘正教授などの研究グループが科学雑誌「ネイチャー」に発表しました。 研究グループは、6年前に「SIK3」と呼ばれるたんぱく質が睡眠に関わっていることを突き止め、マウスを使って詳しいメカニズムの解明を進めてきました。 その結果、「SIK3」のほかに「LKB1」や「HDAC4」と呼ばれるたんぱく質が関わっていて、これらの連鎖反応で「HDAC4」がリン酸という物質と結びつくと睡眠が促されることが分かったということです。 こうした連鎖反応は脳の神経細胞で起きていますが、睡眠の量は視床下部

    睡眠の量や深さ 脳の別部位で制御 初めて明らかに 筑波大など | NHK
    knj2918
    knj2918 2022/12/10
  • 【写真有】完全初心者によるGit・GitHubの攻略① - Qiita

    00.最初に こんにちは。駆け出しエンジニアのNoobです🔰 今回は、"初心者の" "初心者による" "初心者のための" GitGitHub攻略を目的に、私が学習したことをなるべく体系的に記載してアウトプットの要領で投稿します📘 また、「攻略①」として銘打ったのは、自分自身が成長した時にGitGitHubの内容を更に深掘りした内容を出す(出したい)ということを目標にしているためです。笑 この記事執筆時点で、既にWEBエンジニアとして1ヶ月が経過してしまいました。。 ブランチについてや、開発の流れについて知りたい方は、こちらをクリックしてください💁‍♀️ ⚠️読み進める前にご確認ください⚠️============================= ①記事のレベル的な対象としては、"GitGitHubの学習を最近始めたレベル"となります。既に実務等で使っている方からすると内容と

    【写真有】完全初心者によるGit・GitHubの攻略① - Qiita
    knj2918
    knj2918 2022/12/10
  • スヌーズ、体に悪いんだってよ!! 1回のアラームで起床できるようになる7つの秘策

    スヌーズ、体に悪いんだってよ!! 1回のアラームで起床できるようになる7つの秘策 中野麦子 2014年1月17日 0 みなさんは、時計のスヌーズ機能に頼らずに起きていますか? 「あと少し」、「もうちょっと」、「これで最後だから、お願い……」と、地獄の起床時間を先延ばしにできるあの便利な機能です。 記者は完全なスヌーズ機能漬け人間。6時半に起床するために6時に目覚ましをセットして、ダラダラと寝たり起きたりを繰り返し、クタクタになって6時半に起床します。 そう、クタクタなんです、毎朝。メッチャ疲労感あるんです。これ、なんで? と、ふと疑問に思って調べてみたところ、海外サイト「SLEEP JUNKIES」で、脱スヌーズ機能の記事を見つけましたので、ご紹介したいと思います。 スヌーズ機能、どうも体に悪いらしいのです。がびーん。 スヌーズ機能を使って起床するためには、当に起きなくてはいけないデッド

    スヌーズ、体に悪いんだってよ!! 1回のアラームで起床できるようになる7つの秘策
    knj2918
    knj2918 2022/12/10
    コーヒーの香りをかぐ
  • 正月に向け 臨時でみこ務める学生らの研修会 京都 北野天満宮 | NHK

    knj2918
    knj2918 2022/12/10
  • 最遅の日を締め切りにしない - Qiita

    複雑な要素や関係性は抜きに、たとえば2月1日にリリースしたいものがあるとします。 この場合、ぜったいに開発が終わってないといけない日は1月31日です。正確には1月31日の29時ぐらいでしょう。 ちゃんとやれば、いつもと同じように進むなら、1月31日までには確実に終わりそうな規模感であることは、なんとなくみんな承知しています(適当な前提ですみません)。 1月31日が締め切り? このとき、開発メンバーに「1月31日までに開発を完了してほしい」と伝えるのはどうでしょうか。 筆者はこのような伝え方をすると、次のようなトラブルに見舞われる可能性が高いと感じています。 開発が当に1月31日ちょうどに完了する 前日・前々日はとても慌ただしく、品質も不安 開発に遅延が起きていることを、締切直前になって知る 「昨日までは1月31日までに終わりそうだったが、実は今日〜が発生して終わらないことがわかった」みた

    最遅の日を締め切りにしない - Qiita
    knj2918
    knj2918 2022/12/10
  • こんなシステム開発はもうイヤだ!ありがち失敗事例10連発 ~ あるいはユーザーが本当にホントーに欲しかったものは何か - Qiita

    「予定通り完了」+「ある程度予定通り完了」、「満足」+「ある程度は満足」の割合 は、いずれも開発規模が大きくなるほど小さくなっていますが決して悪くないレベルだと感じるのは筆者だけでしょうか。特に品質については、500人月以上の開発プロジェクトでも74.4%と多くのプロジェクトで満足しています。 でも、品質・コスト・納期を満たせるだけでシステム開発は成功と言えません。品質は悪くないけれど、業務に合致しないシステムや誰も使わないシステムは役に立ちません。せっかくコストと人手をかけてシステム開発をおこなっても、これでは成功と言えないでしょう。 では、どうしてシステム開発において、品質・コスト・納期を満たせなかったり、役に立たないシステムができてしまうのでしょうか。 そこで、どこかで聞いたような情景をまとめてみました。もちろん、すべての失敗プロジェクトがこんな具合という訳ではありませんが、どこか腑

    こんなシステム開発はもうイヤだ!ありがち失敗事例10連発 ~ あるいはユーザーが本当にホントーに欲しかったものは何か - Qiita
    knj2918
    knj2918 2022/12/10
  • DRFのSerializer - Qiita

    Serializer 何をするもの? データに対してシリアライズとデシリアライズを行うところ。 デシリアライズとは? 入力データを元になんらかのオブジェクトを作成すること。 まずは基の基からやるとして、こういうモデルがあるとする。 class Book(object): def __init__(self, title, author, price, created=None): self.title = title self.author = author self.price = price self.created = created or datetime.now() class BookSerializer(serializers.Serializer): title = serializers.CharField(max_length=255) author = seria

    DRFのSerializer - Qiita
  • Two Phase Lock - Qiita

    実行スケジュールを動的に作成したい Conflict Serializability(CSR)が担保される実行スケジュールはトランザクションの実装上好ましい性質を持っている。 そのCSRを動的に生成する方法の1つがTwo Phase Lock(2相ロックまたは2PL)である。 厳密にはCSRより更に狭い範囲のスケジュールしか許容しないが、詳細はリカバリなどの議論を含むため後日にする。 Two Phase Lockとは、成長相と縮退相の2相からなるロックプロトコルである。 ロックプロトコルとは、複数のロックを獲得・解放する際の取り決め(プロトコル)を規定する物であり、特定のロック実装には依存しない。 Two Phase Lockの規定するプロトコルは以下である。 成長相のあとに縮退相が来なくてはならない。 縮退相のあとに成長相が来る事は許可されていない。 成長相と縮退相はそれぞれ1つずつしか

    Two Phase Lock - Qiita
    knj2918
    knj2918 2022/12/10
  • 「DDDで複数集約間の整合性を確保する方法」に対する考察 - かとじゅんの技術日誌

    久しぶりにブログ記事を書きますか。 ということで、松岡さん(id:little_hands)のブログ記事に対する考察記事です。 この記事は古くなったので、ぜひ以下も参照してください。 blog.j5ik2o.me little-hands.hatenablog.com 題材も松岡さんのブログ記事と同じもので考えます。 「実装方法1. ユースケースで複数集約を更新する」について考察したいと思います。 注意事項)この記事で使うトランザクションという用語は単なる一連の手続きという意味ではなく、ACID特性を持つRDBのトランザクションという意味です。 class CreateTaskUseCase1( private val taskRepository: TaskRepository, private val taskReportRepository: TaskReportRepository

    「DDDで複数集約間の整合性を確保する方法」に対する考察 - かとじゅんの技術日誌
  • 「Reactive Messaging Patternsに学ぶシステム間統合」というテーマで発表してきました - yoskhdia’s diary

    第5回Reactive System Meetup in 西新宿で登壇してきました*1。 reactive-shinjuku.connpass.com 発表資料 docs.google.com 一部表現を変えつつ、補足をして発表資料を公開します*2。 トークスクリプトもつけてありますので併せてどうぞ。 明日から開催のScala Matsuri 2018の弾みになれば幸いです。 泣く泣くカットしたトランザクションの話は続きを読むからどうぞ↓ 番外編)避けては通れないトランザクションの話 docs.google.com トランザクションと一口にいっても、以下のようなものがあります。 相手システムとの間(チャンネルの両端)で協調 受けたメッセージに対して、いくつかのステップの処理を実行 メッセージング基盤としてのメッセージを確かに送受信できるようにすることに対するトランザクションと、ビジネスロジ

    「Reactive Messaging Patternsに学ぶシステム間統合」というテーマで発表してきました - yoskhdia’s diary
  • 実践DDD本 第10章「集約」~トランザクション整合性を保つ境界~

    実践DDD 第9章「モジュール」~高凝集で疎結合にまとめる~ DDDにおける集約 DDDにおける集約(Aggregates)とは、オブジェクトのまとまりを表し、整合性を保ちながらデータを更新する単位となります。通常はオブジェクトの集まりの「境界線」の意味で使われ、オブジェクト群の生成/読み込み/変更/保存といったライフサイクル管理が行われます。 外部から集約を操作できる「集約ルート」 外部から集約を操作する場合、代表オブジェクトである「集約ルート(≒ルートエンティティ)」のみ参照することができます。集約ルートを操作することで集約全体の整合性を保ちながらデータを変更できます。 DDDの「集約」のイメージ 上図の例では、注文に関わるオブジェクト群が集約の「境界線」となっています。操作をしたい場合「注文」という「集約ルート」に変更依頼をすることができます。集約内部にある「注文明細」や「配送先住

    実践DDD本 第10章「集約」~トランザクション整合性を保つ境界~
  • DDDにおいてリポジトリとDBのトランザクションは切り離せないのか? - pospomeのプログラミング日記

    DDDではリポジトリに対してDIPを利用し、インターフェースと実装を切り離す傾向にある。 これはいわゆる「抽象に依存せよ」ってやつなので、 DDDというよりは既存のプログラミングテクニックになる。 で、これを実現するためにリポジトリを以下のようにインターフェースで実装する。 コードはTypeScriptです。 interface UserRepo { insert(user: User, master: DbMasterConnection): Promise<User>; findByName(name: string, con: DbConnection): Promise<User>; findById(id: number, con: DbConnection): Promise<User>; }リポジトリの実装自体はインフラレイヤに置く。 「データを取得する」ということなので、個

    DDDにおいてリポジトリとDBのトランザクションは切り離せないのか? - pospomeのプログラミング日記
  • DDDのトランザクション管理について

    DDDではトランザクション管理をアプリケーション層で行うという認識でいます。 例えばUserとCompanyという2つのドメインモデルが存在し、 それぞれマスタ画面でDBへの登録処理があるとします。 登録処理をアプリケーションサービスクラスで行うときは class UserRegisterService { public function register(User $user) { // トランザクション開始 try { // ユーザー登録処理 $this->userRepo->register($user); commit } catch { rollback } } } class CompanyRegisterService { public function register(Company $company) { // トランザクション開始 try { // 会社登録処理 $t

    DDDのトランザクション管理について
  • DDDとトランザクション • masu-mi's blog(dirty pages)

    去年の夏前くらいにDDDまわりの勉強していた。でこのメモを書いていたので少し直して晒してみる。 前回の続編。 前回、戦術的モデリングの最後に「実装ではアプリケーションレベルでの難所があるよなぁと思った」と書いたのでその辺りを考える。 難しさは主にトランザクションにある。 トランザクションはアプリケーションレベルの概念でドメインでは直接は扱わない。 ドメイン駆動設計(DDD)でドメインレベルで関連する概念に集約がある。 今回はまず一貫性境界となる集約とライフサイクルに関わるファクトリとリポジトリについて考えてみる。 集約やファクトリ・リポジトリによる表現が扱いにくさを生む側面について考える。 そのあとサブコンテキストごとにサービス化を行うマイクロサービス(MS)・サービス指向アーキテクチャ(SOA)で出てくる問題について触れる。 最後に、コード実装上の選択肢で悩みがちなところをまとめておく。

  • ボトムアップドメイン駆動設計 後編

    はじめに この記事は続編です。 前編記事: ボトムアップドメイン駆動設計 https://nrslib.com/bottomup-ddd/ 順序立っての説明になっておりますので、前編からご覧になることを強くお勧めします。 ファクトリ 独自の採番システム ところで UserId は Guid (Globally Unique Identifier)です。 Guid は事実上どこでどのタイミングで生成したとしてもユニークになります。 その性質を利用して User は一意な id をコンストラクタで生成していました。 しかしプロダクトによっては Guid ではなく独自の採番機能を採用したいという事例は往々にしてあります。 そこでデータベースの採番テーブルを利用した独自の採番システムを利用して User オブジェクトをインスタンス化してみましょう。 コンストラクタで SQL を実行して採番していま

    ボトムアップドメイン駆動設計 後編
  • 【DDD】集約とトランザクション境界について調べたことメモ

    簡単まとめシリーズ 今回は 集約とトランザクション境界 について、 自分のわからないところを調べたので、メモとして残しておきます。 集約 集約の説明を『ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基』 から拝借すると、 「データを変更するための単位として扱われるオブジェクトの集まりを集約といいます」とのこと。 ↓ もうすこし具体的に言うと DDDではエンティティと値オブジェクトというものがありますが、 値オブジェクトを直接触らず、 エンティティ経由でしか変更しないようにするというものですね。 このような制限をかけることで、 ひとまとまりにされたオブジェクト間で維持されるべき不変条件を守ることができます。 トランザクション境界 基的な考えとしては、集約ごとにトランザクションを貼ります。 ↑この基を守るためにも、理想としては正しいモデリングにより、 正しいトランザクシ

  • トランザクションスクリプトとDDD

    エヴァンスが2003年に書籍 Domain-Driven Design で紹介してから早17年。 やっと時代が追いつき、近年ではこれまでにないほど DDD が注目を集めている。 注目が高まるとともに、DDD を取り扱う良質な書籍も増え、 私自身も複数の DDD の実践を経て、以前よりも理解は進んできたように思う。 そこで、私の現時点での DDD に対する解釈を、一度ここに書き起こし、残してみようと思う。 (これはあくまで現時点での解釈であり、解釈のアップデートがあれば書き換えるかもしれない。) なお稿では、ドメインエキスパートや、ユビキタス言語といった、 DDD のプロジェクトへの適用側面には触れず、あくまでプログラミングする際に どのように理解、適用していけばよいかを中心に見ていく。 2011年9月、Spring Framework 3.0.6がリリースされて間もない頃、Spring

  • 5分で理解する Google Apps Script - Qiita

    はじめに Google Apps Script(以降、GAS)はGoogleによって開発されたスクリプト言語になります。 業務でGoogleサービスを利用している場合、GASを用いることで様々な業務効率化を行うことができます。 記事ではGASについて最速で理解することを目的に、最低限必要な知識についてまとめています。 GAS概要 GASを始めるのに必要なのはGoogleアカウントのみです。 Googleのプラットフォーム上で動作するため、実行環境も不要です。 JavaScriptを基に作られているため、JavaScriptを知っている人なら簡単に使い始めることができます。また、学習コストも低いので非エンジニアの方でも習得して業務に活用することもできます。 GASの活用 要約すると以下の様なことができます。 作成したスクリプトを使用したマクロの実行 スプレッドシートからのメール一括送信 G

    5分で理解する Google Apps Script - Qiita
    knj2918
    knj2918 2022/12/10
  • 【JavaScript】関数名を動的に設定して実行する

    JavaScriptで、関数名を変数に格納して、実行する関数を動的に変更する方法を紹介します。 ソース 次にプレイヤーがとるべき行動として「Play」か「Study」のどちらかが格納される「NextAction」という変数があるとします。 //関数を格納する配列 var functionList = new Array(); functionList.Play = function(){ alert("遊ぶ"); } functionList.Study = function(){ alert("勉強する"); } //次にプレイヤーがとるべき行動が「Play」だとする var NextAction = "Play"; //次の行動に応じた関数を実行する functionList[NextAction](); 解説 まず、動的に実行させたい関数を配列に格納しておく必要があります。 ここでは

    knj2918
    knj2918 2022/12/10
  • 【GAS】 var・let・constの違いと使い分け

    変数は「var」「let」、 定数は「const」 変数の宣言には「var」「let」、 定数の宣言には「const」を使います。 まずは定数と変数の違いを抑えましょう。 変数:値を何度も代入しなおせる(var・let) 定数:値を一度決めたら代入し直すことができない(const) 実際に代入しようとして確認します。 function myFunction() { var a = 10; a = 5; // OK let b = 10; b = 5; // OK const c = 10; c = 5; // エラー } constでは再代入ができないことが確認できました。 「var」と「let」の違い 「var」と「let」は同じ「変数の宣言文」ですが、再宣言できるかどうか、グローバルで参照できるかの違いがあります。 function myFunction() { var a = 10;

    【GAS】 var・let・constの違いと使い分け
    knj2918
    knj2918 2022/12/10