CINXE.COM

[B! DDD] shunt_iのブックマーク

<!DOCTYPE html> <html lang="ja" data-page-scope="User" data-stable-request-url="https://b.hatena.ne.jp/shunt_i/DDD/" data-device-type="PC" data-sentry-environment="production" data-sentry-sample-rate="0.1" data-author-name="shunt_i" data-page-subtype="tag" data-page-type="user" data-platform="pc" data-search-query="" data-tag-filter="DDD" data-visitor-name="ゲスト" > <head> <!-- Google Tag Manager --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5TDHQX'); </script> <!-- End Google Tag Manager --> <meta charset="UTF-8"> <title>[B! DDD] shunt_iのブックマーク</title> <script src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/js/v4/bookmark.js" async></script> <link type="text/css" rel="stylesheet" href="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/css/v4/bookmark.css" /> <link type="text/css" rel="stylesheet" href="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/css/v4/bookmark.star.css" /> <link rel="canonical" href="https://b.hatena.ne.jp/shunt_i/DDD/" /> <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" /> <meta name="viewport" content="width=device-width"> <link rel="search" type="application/opensearchdescription+xml" title="はてなブックマーク検索" href="/opensearch.xml" /> <link rel="search" type="application/opensearchdescription+xml" title="shunt_i のブックマーク内検索" href="/shunt_i/opensearch.xml"> <link rel="apple-touch-icon-precomposed" href="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/apple-touch-icon-precomposed.png" /> <link rel="mask-icon" href="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/safari-pinned-tab-icon.svg" color="#00A4DE" /> <meta name="msapplication-navbutton-color" content="#2C6EBD" /> <meta name="msapplication-task" content="name=はてなブックマーク; action-uri=/; icon-uri=https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/icons/bookmark.ico" /> <meta name="msapplication-task" content="name=マイブックマーク; action-uri=/my; icon-uri=https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/icons/my-bookmark.ico" /> <meta name="msapplication-task" content="name=お気に入りのブックマーク; action-uri=/my/favorite; icon-uri=https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/icons/favorite-bookmark.ico" /> <meta name="msapplication-task" content="name=人気エントリー; action-uri=/hotentry; icon-uri=https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/icons/hotentry.ico" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="referrer" content="always"> <link rel="author" href="http://www.hatena.ne.jp/shunt_i/" /> <link rel="alternate" type="application/rss+xml" href="/shunt_i/bookmark.rss?tag=DDD" /> <script> function isMobile() { const html = document.documentElement; const deviceType = html.dataset.deviceType || ''; if (deviceType.length > 0) { return deviceType === 'MOBILE'; } else { const maxMobileWidth = 480; const windowWidth = window.innerWidth; return maxMobileWidth >= windowWidth; } } </script> </head> <body class="page-centerarticle fixed-header"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5TDHQX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div class="link-app-banner js-dynamic-link-app-banner is-hidden"> <button class="link-app-banner-btn-close js-dynamic-link-app-banner-close-button"><span>close</span></button> <a class="link-app-banner-btn" href="https://hatenabookmark.page.link/app"> <div class="link-app-banner-btn-detail"> <div class="link-app-banner-icon"><img src="/images/v4/public/app/ic-ios.svg" alt="はてなブックマークアプリ"></div> <p class="link-app-banner-text">サクサク読めて、<br class="link-app-banner-text-newline">アプリ限定の機能も多数!</p> </div> <div class="link-app-banner-btn-open">アプリで開く</div> </a> </div> <header id="global-header" data-portal-static-origin="//cdn.www.st-hatena.com"> <div id="header" class="global-header-inner js-global-header-inner"> <h2 id="gh-logo"><a href="/" data-gtm-label="gh-blogo"><span>はてなブックマーク</span></a></h2> <div class="is-guest js-guest is-hidden"> <input id="gh-search-icon-check" type="checkbox" checked="checked" /> <label class="gh-search-icon" for="gh-search-icon-check" aria-label="検索を閉じる"><span>閉じる</span></label> <form class="gh-searchbox" method="get" action="/search_dwim" role="search"> <input value="" name="q" type="search" class="gh-inputtext" placeholder="キーワード・URLを検索" size="40" /> <input value="" type="submit" class="gh-search-button" /> </form> <ul class="gh-service-menu"> <li><a href="/guide" data-gtm-label="gh-guest-guide">はてなブックマークって?</a></li> <li><a href="/guide/tools" data-gtm-label="gh-guest-tools">アプリ・拡張の紹介</a></li> <li><a href="https://www.hatena.ne.jp/register?location=https%3A%2F%2Fb.hatena.ne.jp%2F%3Fregistered_from%3Dglobal-header&amp;via=201037" class="gh-guest-register" data-gtm-label="gh-guest-register">ユーザー登録</a></li> <li><a href="https://www.hatena.ne.jp/login?location=https%3A%2F%2Fb.hatena.ne.jp%2Fshunt_i%2FDDD%2F" rel="nofollow" class="gh-guest-login" data-gtm-label="gh-guest-login">ログイン</a></li> <li class="gh-hatena-logo"><a href="http://www.hatena.ne.jp/"><img src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/logo/logo-global-white.svg" alt="Hatena" width="74px" height="13px"/></a></li> </ul> </div> <noscript> <ul class="gh-service-menu"> <li><a href="https://www.hatena.ne.jp/logout?location=https%3A%2F%2Fb.hatena.ne.jp%2F">ログアウト</a></li> </ul> </noscript> <script type="text/x-template" id="template-menu-hatena-user"> <form class="gh-searchbox" method="get" action="/search_dwim" role="search"> <input value="" name="q" type="search" class="gh-inputtext" placeholder="キーワード・URLを検索" size="40" /> <input value="" type="submit" class="gh-search-button" /> </form> <ul class="gh-service-menu"> <li><a class="hotentry" data-gtm-label="gh-mypage" href="{{hotentry_url}}"><img src="{{user_image_url}}" class="header-profile-icon" width="16" height="16" alt="{{username}}" /></a><a class="hotentry" data-gtm-label="gh-mypage" href="{{hotentry_url}}">マイページ</a></li> <li><a class="bookmark" data-gtm-label="gh-bookmark" href="{{bookmark_url}}">ブックマーク</a></li> <li><a class="unread_bookmark" data-gtm-label="gh-ril" href="{{bookmark_stock_url}}">あとで読む</a></li> <li><a class="add" data-gtm-label="gh-add" href="{{add_bookmark_url}}">追加</a></li> <li><a class="tools" data-gtm-label="gh-tools" href="/guide/tools">ツール</a></li> <li><a class="config" data-gtm-label="gh-config" href="/-/my/config/profile">設定</a></li> <li><a class="feedback" data-gtm-label="gh-feedback" href="/-/feedback/hatena_bookmark" target="_blank">フィードバック</a></li> <li id="header-username" class="gh-dropdown-services" data-gtm-label="gh-services" title="利用中のサービス" data-name="{{username}}"> <span class="header-dropdown gh-dropdown" tabindex="0"> <img src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/common/usermenu-wh.svg" alt="利用中のサービス" width="24" height="24" /> </span> <dl class="header-window" id="username-window"></dl> </li> <li id="header-notify" data-gtm-label="gh-notify" class="gh-dropdown-notify" title="あなたへのお知らせ"> <span class="header-dropdown gh-dropdown" tabindex="0"> <img src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/common/notify-wh.svg" alt="あなたへのお知らせ" width="25" height="25" /> <span class="notify-count"></span> </span> <div id="notify-window" class="header-window header-notify"></div> </li> <li class="gh-hatena-logo"><a href="http://www.hatena.ne.jp/"><img src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/logo/logo-global-white.svg" alt="Hatena" width="74px" height="13px"/></a></li> </ul> </script> </div> </header> <div id="info-header"><div id="info-header-message"></div><span></span></div> <div class="global-notification is-hidden js-global-notification"></div> <div id="container" class="js-user-page-container" data-author-name="shunt_i" > <div class="centerarticle-wrapper"> <div class="left-container"> <div class="js-user-info" data-user-name="shunt_i"> <div class="centerarticle-profile"> <a href="http://profile.hatena.ne.jp/shunt_i/"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" class="centerarticle-profile-image"/> </a> <div class="centerarticle-profile-main"> <a href="http://profile.hatena.ne.jp/shunt_i/" class="centerarticle-profile-nickname js-user-info-nickname" target="_blank" rel="noopener">shunt_i</a> <a href="/shunt_i/bookmark" class="centerarticle-profile-username">id:shunt_i</a> </div> </div> <ul class="userprofile-status"> <li> <a href="/shunt_i/bookmark" class="userprofile-status-link" data-gtm-click-label="user-count-bookmark"> <span class="userprofile-status-count">2,761</span> <span class="userprofile-status-text">ブックマーク</span> </a> </li> <li> <a href="/shunt_i/follow" class="userprofile-status-link" data-gtm-click-label="user-count-follow"> <span class="userprofile-status-count js-total-followings">-</span> <span class="userprofile-status-text">お気に入り</span> </a> </li> <li> <a href="/shunt_i/follower" class="userprofile-status-link" data-gtm-click-label="user-count-follower"> <span class="userprofile-status-count js-total-followers">-</span> <span class="userprofile-status-text">お気に入られ</span> </a> </li> </ul> </div> <div class="centerarticle-mainNavi"> </div> <div class="centerarticle-sidebar-menu js-user-tags"> <h3 class="centerarticle-aside-title">タグ</h3> <ul class="centerarticle-sub-navi"> <li><a href="/shunt_i/bookmark" data-gtm-click-label="user-tags-all">すべて</a></li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%20%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80/" data-gtm-click-label="user-tags"> あとで読む <span class="count">(27)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%20%E3%81%BE%E3%81%A8%E3%82%81/" data-gtm-click-label="user-tags"> まとめ <span class="count">(14)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%20%E3%81%BE%E3%81%A8%E3%82%81%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81/" data-gtm-click-label="user-tags"> まとめのまとめ <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%20%EF%BC%88%E3%83%BB%E2%88%80%E3%83%BB%EF%BC%89%EF%BD%B2%EF%BD%B2!!/" data-gtm-click-label="user-tags"> (・∀・)イイ!! <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/2011%E5%B9%B4/" data-gtm-click-label="user-tags"> 2011年 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/3d/" data-gtm-click-label="user-tags"> 3d <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/AI/" data-gtm-click-label="user-tags"> AI <span class="count">(37)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/API/" data-gtm-click-label="user-tags"> API <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/AS3/" data-gtm-click-label="user-tags"> AS3 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/AWS/" data-gtm-click-label="user-tags"> AWS <span class="count">(34)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Angular/" data-gtm-click-label="user-tags"> Angular <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Arduino/" data-gtm-click-label="user-tags"> Arduino <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Atom/" data-gtm-click-label="user-tags"> Atom <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Bitbucket/" data-gtm-click-label="user-tags"> Bitbucket <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/CG/" data-gtm-click-label="user-tags"> CG <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/CKEditor/" data-gtm-click-label="user-tags"> CKEditor <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/COVID-19/" data-gtm-click-label="user-tags"> COVID-19 <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/CS/" data-gtm-click-label="user-tags"> CS <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/CSS/" data-gtm-click-label="user-tags"> CSS <span class="count">(34)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/CTP/" data-gtm-click-label="user-tags"> CTP <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/CentOS/" data-gtm-click-label="user-tags"> CentOS <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/ChatGPT/" data-gtm-click-label="user-tags"> ChatGPT <span class="count">(18)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Chief%20Joseph/" data-gtm-click-label="user-tags"> Chief Joseph <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/C%E8%A8%80%E8%AA%9E/" data-gtm-click-label="user-tags"> C言語 <span class="count">(20)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/DB/" data-gtm-click-label="user-tags"> DB <span class="count">(40)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/DDD/" class="is-current" data-gtm-click-label="user-tags"> DDD <span class="count">(12)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/DNS/" data-gtm-click-label="user-tags"> DNS <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/DTM/" data-gtm-click-label="user-tags"> DTM <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/DTP/" data-gtm-click-label="user-tags"> DTP <span class="count">(15)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/DTP%E3%82%A8%E3%82%AD%E3%82%B9%E3%83%91%E3%83%BC%E3%83%88/" data-gtm-click-label="user-tags"> DTPエキスパート <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/DeepLearning/" data-gtm-click-label="user-tags"> DeepLearning <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Evernote/" data-gtm-click-label="user-tags"> Evernote <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Excel/" data-gtm-click-label="user-tags"> Excel <span class="count">(16)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/FX/" data-gtm-click-label="user-tags"> FX <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/GDPR/" data-gtm-click-label="user-tags"> GDPR <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/GraphQL/" data-gtm-click-label="user-tags"> GraphQL <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/IT/" data-gtm-click-label="user-tags"> IT <span class="count">(12)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Illustrator/" data-gtm-click-label="user-tags"> Illustrator <span class="count">(12)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/IoT/" data-gtm-click-label="user-tags"> IoT <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Java/" data-gtm-click-label="user-tags"> Java <span class="count">(9)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Jenkins/" data-gtm-click-label="user-tags"> Jenkins <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Kotlin/" data-gtm-click-label="user-tags"> Kotlin <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Laravel/" data-gtm-click-label="user-tags"> Laravel <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/MachineLearning/" data-gtm-click-label="user-tags"> MachineLearning <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Makefile/" data-gtm-click-label="user-tags"> Makefile <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Next.js/" data-gtm-click-label="user-tags"> Next.js <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/OAuth/" data-gtm-click-label="user-tags"> OAuth <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/OS/" data-gtm-click-label="user-tags"> OS <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/PC/" data-gtm-click-label="user-tags"> PC <span class="count">(29)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/PostgreSQL/" data-gtm-click-label="user-tags"> PostgreSQL <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Processing/" data-gtm-click-label="user-tags"> Processing <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/RSS/" data-gtm-click-label="user-tags"> RSS <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Rails/" data-gtm-click-label="user-tags"> Rails <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Raspberry%20Pi/" data-gtm-click-label="user-tags"> Raspberry Pi <span class="count">(9)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Ruby/" data-gtm-click-label="user-tags"> Ruby <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Rust/" data-gtm-click-label="user-tags"> Rust <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/SEO/" data-gtm-click-label="user-tags"> SEO <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/SNS/" data-gtm-click-label="user-tags"> SNS <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Scratch/" data-gtm-click-label="user-tags"> Scratch <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Swift/" data-gtm-click-label="user-tags"> Swift <span class="count">(6)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Tailwind/" data-gtm-click-label="user-tags"> Tailwind <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/UI/" data-gtm-click-label="user-tags"> UI <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/UNIX/" data-gtm-click-label="user-tags"> UNIX <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/VJ/" data-gtm-click-label="user-tags"> VJ <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Vue/" data-gtm-click-label="user-tags"> Vue <span class="count">(10)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/Web%E5%88%B6%E4%BD%9C/" data-gtm-click-label="user-tags"> Web制作 <span class="count">(92)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/amazon/" data-gtm-click-label="user-tags"> amazon <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/art/" data-gtm-click-label="user-tags"> art <span class="count">(28)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/beacon/" data-gtm-click-label="user-tags"> beacon <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/bootstrap/" data-gtm-click-label="user-tags"> bootstrap <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/c++/" data-gtm-click-label="user-tags"> c++ <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/chrome/" data-gtm-click-label="user-tags"> chrome <span class="count">(20)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/coliss/" data-gtm-click-label="user-tags"> coliss <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/ctf/" data-gtm-click-label="user-tags"> ctf <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/design/" data-gtm-click-label="user-tags"> design <span class="count">(89)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/dj/" data-gtm-click-label="user-tags"> dj <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/docker/" data-gtm-click-label="user-tags"> docker <span class="count">(37)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/ds-10/" data-gtm-click-label="user-tags"> ds-10 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/emacs/" data-gtm-click-label="user-tags"> emacs <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/fashion/" data-gtm-click-label="user-tags"> fashion <span class="count">(47)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/firefox/" data-gtm-click-label="user-tags"> firefox <span class="count">(8)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/flash/" data-gtm-click-label="user-tags"> flash <span class="count">(10)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/font/" data-gtm-click-label="user-tags"> font <span class="count">(16)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/game/" data-gtm-click-label="user-tags"> game <span class="count">(31)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/git/" data-gtm-click-label="user-tags"> git <span class="count">(38)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/github/" data-gtm-click-label="user-tags"> github <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/golang/" data-gtm-click-label="user-tags"> golang <span class="count">(14)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/google/" data-gtm-click-label="user-tags"> google <span class="count">(6)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/google%20analytics/" data-gtm-click-label="user-tags"> google analytics <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/house/" data-gtm-click-label="user-tags"> house <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/html/" data-gtm-click-label="user-tags"> html <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/iPhone%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA/" data-gtm-click-label="user-tags"> iPhoneアプリ開発 <span class="count">(43)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/image/" data-gtm-click-label="user-tags"> image <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/iphone/" data-gtm-click-label="user-tags"> iphone <span class="count">(19)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/javascript/" data-gtm-click-label="user-tags"> javascript <span class="count">(27)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/kubernetes/" data-gtm-click-label="user-tags"> kubernetes <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/linux/" data-gtm-click-label="user-tags"> linux <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/mac/" data-gtm-click-label="user-tags"> mac <span class="count">(59)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/music/" data-gtm-click-label="user-tags"> music <span class="count">(124)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/mysql/" data-gtm-click-label="user-tags"> mysql <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/news/" data-gtm-click-label="user-tags"> news <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/nginx/" data-gtm-click-label="user-tags"> nginx <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/notion/" data-gtm-click-label="user-tags"> notion <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/obsidian/" data-gtm-click-label="user-tags"> obsidian <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/pdf/" data-gtm-click-label="user-tags"> pdf <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/perl/" data-gtm-click-label="user-tags"> perl <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/photoshop/" data-gtm-click-label="user-tags"> photoshop <span class="count">(25)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/php/" data-gtm-click-label="user-tags"> php <span class="count">(20)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/podcast/" data-gtm-click-label="user-tags"> podcast <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/prompt/" data-gtm-click-label="user-tags"> prompt <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/python/" data-gtm-click-label="user-tags"> python <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/react/" data-gtm-click-label="user-tags"> react <span class="count">(10)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/scheme/" data-gtm-click-label="user-tags"> scheme <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/server/" data-gtm-click-label="user-tags"> server <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/shell/" data-gtm-click-label="user-tags"> shell <span class="count">(17)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/slack/" data-gtm-click-label="user-tags"> slack <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/software/" data-gtm-click-label="user-tags"> software <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/sql/" data-gtm-click-label="user-tags"> sql <span class="count">(14)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/terraform/" data-gtm-click-label="user-tags"> terraform <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/threejs/" data-gtm-click-label="user-tags"> threejs <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/thunderbird/" data-gtm-click-label="user-tags"> thunderbird <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/unity/" data-gtm-click-label="user-tags"> unity <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/vagrant/" data-gtm-click-label="user-tags"> vagrant <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/vba/" data-gtm-click-label="user-tags"> vba <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/vim/" data-gtm-click-label="user-tags"> vim <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/visual%20studio/" data-gtm-click-label="user-tags"> visual studio <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/vscode/" data-gtm-click-label="user-tags"> vscode <span class="count">(26)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/webdesign/" data-gtm-click-label="user-tags"> webdesign <span class="count">(48)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9/" data-gtm-click-label="user-tags"> webサービス <span class="count">(242)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/web%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E7%94%A8/" data-gtm-click-label="user-tags"> webプロジェクト用 <span class="count">(13)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/windows/" data-gtm-click-label="user-tags"> windows <span class="count">(10)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/windows7/" data-gtm-click-label="user-tags"> windows7 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/word/" data-gtm-click-label="user-tags"> word <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/wordpress/" data-gtm-click-label="user-tags"> wordpress <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/xamarin/" data-gtm-click-label="user-tags"> xamarin <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/youtube/" data-gtm-click-label="user-tags"> youtube <span class="count">(27)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/zsh/" data-gtm-click-label="user-tags"> zsh <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%81%82%E3%81%A8%E3%81%A7%E3%82%84%E3%82%8B/" data-gtm-click-label="user-tags"> あとでやる <span class="count">(12)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80/" data-gtm-click-label="user-tags"> あとで読む <span class="count">(268)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%81%84%E3%81%84%E8%A9%B1/" data-gtm-click-label="user-tags"> いい話 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%81%8A%E9%87%91/" data-gtm-click-label="user-tags"> お金 <span class="count">(8)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%81%93%E3%82%8C%E3%81%AF%E3%81%99%E3%81%94%E3%81%84/" data-gtm-click-label="user-tags"> これはすごい <span class="count">(12)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%81%AF%E3%81%A6%E3%81%AA/" data-gtm-click-label="user-tags"> はてな <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%81%BE%E3%81%A8%E3%82%81/" data-gtm-click-label="user-tags"> まとめ <span class="count">(93)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%86%E3%81%8B%E3%81%97/" data-gtm-click-label="user-tags"> ゆかし <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%82%A4%E3%83%87%E3%82%A3%E3%82%A2%E2%80%BB/" data-gtm-click-label="user-tags"> アイディア※ <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%82%A6%E3%83%88%E3%83%89%E3%82%A2/" data-gtm-click-label="user-tags"> アウトドア <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%82%A6%E3%83%88%E3%83%89%E3%82%A2%E7%94%A8%E5%93%81/" data-gtm-click-label="user-tags"> アウトドア用品 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%82%AF%E3%82%A2%E3%83%AA%E3%82%A6%E3%83%A0/" data-gtm-click-label="user-tags"> アクアリウム <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%82%BB%E3%83%B3%E3%83%96%E3%83%AA/" data-gtm-click-label="user-tags"> アセンブリ <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%83%8B%E3%83%A1/" data-gtm-click-label="user-tags"> アニメ <span class="count">(11)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%83%95%E3%82%A3%E3%83%AA%E3%82%A8%E3%82%A4%E3%83%88/" data-gtm-click-label="user-tags"> アフィリエイト <span class="count">(6)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%83%97%E3%83%AA/" data-gtm-click-label="user-tags"> アプリ <span class="count">(25)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%83%97%E3%83%AA%E9%96%8B%E7%99%BA/" data-gtm-click-label="user-tags"> アプリ開発 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0/" data-gtm-click-label="user-tags"> アルゴリズム <span class="count">(21)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88/" data-gtm-click-label="user-tags"> イベント <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AA%E3%82%A2/" data-gtm-click-label="user-tags"> インテリア <span class="count">(16)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9/" data-gtm-click-label="user-tags"> インフラ <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2/" data-gtm-click-label="user-tags"> エンジニア <span class="count">(32)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%A8%E3%83%B3%E3%82%BF%E3%83%A1/" data-gtm-click-label="user-tags"> エンタメ <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%AC%E3%82%B8%E3%82%A7%E3%83%83%E3%83%88/" data-gtm-click-label="user-tags"> ガジェット <span class="count">(14)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0/" data-gtm-click-label="user-tags"> ガンダム <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%AD%E3%83%A3%E3%83%AA%E3%82%A2/" data-gtm-click-label="user-tags"> キャリア <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89/" data-gtm-click-label="user-tags"> キーボード <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%AF%E3%83%AC%E3%82%B8%E3%83%83%E3%83%88%E3%82%AB%E3%83%BC%E3%83%89/" data-gtm-click-label="user-tags"> クレジットカード <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%B2%E3%83%BC%E3%83%A0/" data-gtm-click-label="user-tags"> ゲーム <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3/" data-gtm-click-label="user-tags"> コミュニケーション <span class="count">(10)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9/" data-gtm-click-label="user-tags"> サービス <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E9%81%8B%E7%94%A8/" data-gtm-click-label="user-tags"> サービス運用 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%B8%E3%83%A0/" data-gtm-click-label="user-tags"> ジム <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%B9%E3%82%BF%E3%83%BC%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%BA/" data-gtm-click-label="user-tags"> スターウォーズ <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88/" data-gtm-click-label="user-tags"> スプレッドシート <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3/" data-gtm-click-label="user-tags"> セキュリティ <span class="count">(33)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2/" data-gtm-click-label="user-tags"> ソフトウェア <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%82%BF%E3%82%B9%E3%82%AF%E7%AE%A1%E7%90%86/" data-gtm-click-label="user-tags"> タスク管理 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%81%E3%83%A5%E3%83%BC%E3%83%88%E3%83%AA%E3%82%A2%E3%83%AB/" data-gtm-click-label="user-tags"> チュートリアル <span class="count">(35)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%84%E3%83%BC%E3%83%AB/" data-gtm-click-label="user-tags"> ツール <span class="count">(25)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%86%E3%82%B9%E3%83%88/" data-gtm-click-label="user-tags"> テスト <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%86%E3%83%AC%E3%83%93/" data-gtm-click-label="user-tags"> テレビ <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3/" data-gtm-click-label="user-tags"> デザインパターン <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9/" data-gtm-click-label="user-tags"> データベース <span class="count">(6)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%88%E3%83%A9%E3%83%B3%E3%83%97/" data-gtm-click-label="user-tags"> トランプ <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%88%E3%83%AC%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0/" data-gtm-click-label="user-tags"> トレーニング <span class="count">(36)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%8D%E3%82%BF/" data-gtm-click-label="user-tags"> ネタ <span class="count">(23)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF/" data-gtm-click-label="user-tags"> ネットワーク <span class="count">(22)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%93%E3%82%B8%E3%83%8D%E3%82%B9/" data-gtm-click-label="user-tags"> ビジネス <span class="count">(14)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E9%80%81%E4%BF%A1/" data-gtm-click-label="user-tags"> ファイル送信 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0/" data-gtm-click-label="user-tags"> フォーム <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%95%E3%83%AA%E3%83%BC%E3%83%A9%E3%83%B3%E3%82%B9/" data-gtm-click-label="user-tags"> フリーランス <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF/" data-gtm-click-label="user-tags"> フレームワーク <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89/" data-gtm-click-label="user-tags"> フロントエンド <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%96%E3%83%A9%E3%82%B7/" data-gtm-click-label="user-tags"> ブラシ <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%96%E3%83%AD%E3%82%B0/" data-gtm-click-label="user-tags"> ブログ <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3/" data-gtm-click-label="user-tags"> プレゼン <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E3%83%88/" data-gtm-click-label="user-tags"> プレゼント <span class="count">(9)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/" data-gtm-click-label="user-tags"> プログラミング <span class="count">(144)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%9E%E3%83%8D%E3%82%B8%E3%83%A1%E3%83%B3%E3%83%88/" data-gtm-click-label="user-tags"> マネジメント <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%9E%E3%83%BC%E3%82%B1%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0/" data-gtm-click-label="user-tags"> マーケティング <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%A1%E3%83%BC%E3%83%AB/" data-gtm-click-label="user-tags"> メール <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB/" data-gtm-click-label="user-tags"> ライフスタイル <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%AA%E3%83%83%E3%82%AF%E3%83%87%E3%82%A3%E3%82%A2%E3%82%B9/" data-gtm-click-label="user-tags"> リックディアス <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF/" data-gtm-click-label="user-tags"> リモートワーク <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%AC%E3%82%BF%E3%83%83%E3%83%81/" data-gtm-click-label="user-tags"> レタッチ <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%AD%E3%83%9C%E3%83%83%E3%83%88/" data-gtm-click-label="user-tags"> ロボット <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E3%83%AF%E3%83%BC%E3%82%AD%E3%83%B3%E3%82%B0%EF%BC%9A%E5%B1%95%E7%A4%BA%E4%BC%9A/" data-gtm-click-label="user-tags"> ワーキング:展示会 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E4%B8%8D%E5%8B%95%E7%94%A3/" data-gtm-click-label="user-tags"> 不動産 <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E4%BA%8B%E4%BB%B6/" data-gtm-click-label="user-tags"> 事件 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E4%BB%95%E4%BA%8B/" data-gtm-click-label="user-tags"> 仕事 <span class="count">(131)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E4%BC%9A%E7%A4%BE/" data-gtm-click-label="user-tags"> 会社 <span class="count">(39)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E4%BE%BF%E5%88%A9/" data-gtm-click-label="user-tags"> 便利 <span class="count">(18)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E4%BF%9D%E9%99%BA/" data-gtm-click-label="user-tags"> 保険 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%81%A5%E5%BA%B7/" data-gtm-click-label="user-tags"> 健康 <span class="count">(52)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%86%8D%E5%88%A9%E7%94%A8/" data-gtm-click-label="user-tags"> 再利用 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%86%99%E7%9C%9F/" data-gtm-click-label="user-tags"> 写真 <span class="count">(17)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%89%AF%E6%A5%AD/" data-gtm-click-label="user-tags"> 副業 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%8A%B9%E6%9E%9C/" data-gtm-click-label="user-tags"> 効果 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%8B%89%E5%BC%B7/" data-gtm-click-label="user-tags"> 勉強 <span class="count">(38)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%8B%95%E7%94%BB/" data-gtm-click-label="user-tags"> 動画 <span class="count">(38)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%8D%B0%E5%88%B7/" data-gtm-click-label="user-tags"> 印刷 <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%8D%B0%E5%88%B7%E4%BC%9A%E7%A4%BE/" data-gtm-click-label="user-tags"> 印刷会社 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%90%8D%E5%88%BA/" data-gtm-click-label="user-tags"> 名刺 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%95%86%E7%94%A8%E5%8F%AF/" data-gtm-click-label="user-tags"> 商用可 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%9C%B0%E5%9B%B3/" data-gtm-click-label="user-tags"> 地図 <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%9C%B0%E5%9F%9F%E6%83%85%E5%A0%B1/" data-gtm-click-label="user-tags"> 地域情報 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%AD%90%E4%BE%9B/" data-gtm-click-label="user-tags"> 子供 <span class="count">(27)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%AE%87%E5%AE%99/" data-gtm-click-label="user-tags"> 宇宙 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%AE%AE%E5%B4%8E%E9%A7%BF/" data-gtm-click-label="user-tags"> 宮崎駿 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%AE%B6%E5%85%B7/" data-gtm-click-label="user-tags"> 家具 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%AE%B6%E6%97%8F/" data-gtm-click-label="user-tags"> 家族 <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%AE%B6%E9%9B%BB/" data-gtm-click-label="user-tags"> 家電 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%AF%8C%E9%87%8E%E7%94%B1%E6%82%A0%E5%AD%A3/" data-gtm-click-label="user-tags"> 富野由悠季 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%B0%B1%E8%81%B7/" data-gtm-click-label="user-tags"> 就職 <span class="count">(19)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%B7%A5%E4%BD%9C/" data-gtm-click-label="user-tags"> 工作 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%BA%83%E5%91%8A/" data-gtm-click-label="user-tags"> 広告 <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%BA%97/" data-gtm-click-label="user-tags"> 店 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%BB%BA%E7%AF%89/" data-gtm-click-label="user-tags"> 建築 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E5%BC%95%E8%B6%8A%E3%81%97/" data-gtm-click-label="user-tags"> 引越し <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%81%8B%E6%84%9B/" data-gtm-click-label="user-tags"> 恋愛 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%88%A6%E4%BA%89/" data-gtm-click-label="user-tags"> 戦争 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%8A%95%E8%B3%87/" data-gtm-click-label="user-tags"> 投資 <span class="count">(13)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%90%BA%E5%B8%AF/" data-gtm-click-label="user-tags"> 携帯 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%94%BE%E5%B0%84%E8%83%BD%E6%B1%9A%E6%9F%93/" data-gtm-click-label="user-tags"> 放射能汚染 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%94%BF%E6%B2%BB/" data-gtm-click-label="user-tags"> 政治 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%95%99%E8%82%B2/" data-gtm-click-label="user-tags"> 教育 <span class="count">(35)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%95%B0%E5%AD%A6/" data-gtm-click-label="user-tags"> 数学 <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%96%99%E7%90%86/" data-gtm-click-label="user-tags"> 料理 <span class="count">(64)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%96%B0%E5%9E%8B%E3%82%B3%E3%83%AD%E3%83%8A%E3%82%A6%E3%82%A4%E3%83%AB%E3%82%B9/" data-gtm-click-label="user-tags"> 新型コロナウイルス <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%98%A0%E7%94%BB/" data-gtm-click-label="user-tags"> 映画 <span class="count">(27)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%9C%AC/" data-gtm-click-label="user-tags"> 本 <span class="count">(33)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%9D%B1%E5%8C%97%E5%9C%B0%E6%96%B9%E5%A4%AA%E5%B9%B3%E6%B4%8B%E6%B2%96%E5%9C%B0%E9%9C%87/" data-gtm-click-label="user-tags"> 東北地方太平洋沖地震 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%A4%9C%E7%B4%A2/" data-gtm-click-label="user-tags"> 検索 <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92/" data-gtm-click-label="user-tags"> 機械学習 <span class="count">(14)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%A9%9F%E8%83%BD%E6%8B%A1%E5%BC%B5/" data-gtm-click-label="user-tags"> 機能拡張 <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%AC%B2%E3%81%97%E3%81%84%E3%82%82%E3%81%AE/" data-gtm-click-label="user-tags"> 欲しいもの <span class="count">(23)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE/" data-gtm-click-label="user-tags"> 正規表現 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%AD%B4%E5%8F%B2/" data-gtm-click-label="user-tags"> 歴史 <span class="count">(8)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E6%BC%AB%E7%94%BB/" data-gtm-click-label="user-tags"> 漫画 <span class="count">(31)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%81%BD%E5%AE%B3/" data-gtm-click-label="user-tags"> 災害 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%8F%8D%E3%82%B9%E3%83%9D/" data-gtm-click-label="user-tags"> 珍スポ <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%94%9F%E6%B4%BB/" data-gtm-click-label="user-tags"> 生活 <span class="count">(118)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%94%BB%E5%83%8F/" data-gtm-click-label="user-tags"> 画像 <span class="count">(21)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%94%BB%E5%83%8F%E7%94%9F%E6%88%90/" data-gtm-click-label="user-tags"> 画像生成 <span class="count">(10)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%9D%A1%E7%9C%A0/" data-gtm-click-label="user-tags"> 睡眠 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%A4%BE%E4%BC%9A/" data-gtm-click-label="user-tags"> 社会 <span class="count">(28)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%A7%91%E5%AD%A6/" data-gtm-click-label="user-tags"> 科学 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%A8%8E%E9%87%91/" data-gtm-click-label="user-tags"> 税金 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%AB%B6%E3%83%97%E3%83%AD/" data-gtm-click-label="user-tags"> 競プロ <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%B4%A0%E6%9D%90/" data-gtm-click-label="user-tags"> 素材 <span class="count">(12)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%B5%8C%E5%96%B6/" data-gtm-click-label="user-tags"> 経営 <span class="count">(10)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%B5%8C%E6%B8%88/" data-gtm-click-label="user-tags"> 経済 <span class="count">(10)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%B5%B1%E8%A8%88/" data-gtm-click-label="user-tags"> 統計 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%B5%B5/" data-gtm-click-label="user-tags"> 絵 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E7%BE%8E%E5%AE%B9/" data-gtm-click-label="user-tags"> 美容 <span class="count">(6)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%80%83%E3%81%88%E6%96%B9/" data-gtm-click-label="user-tags"> 考え方 <span class="count">(27)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%84%B3/" data-gtm-click-label="user-tags"> 脳 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%87%AA%E4%BD%9CPC/" data-gtm-click-label="user-tags"> 自作PC <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%87%AA%E8%BB%A2%E8%BB%8A/" data-gtm-click-label="user-tags"> 自転車 <span class="count">(8)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%8B%B1%E8%AA%9E/" data-gtm-click-label="user-tags"> 英語 <span class="count">(41)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%A6%B3%E5%85%89/" data-gtm-click-label="user-tags"> 観光 <span class="count">(44)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%A8%80%E8%91%89/" data-gtm-click-label="user-tags"> 言葉 <span class="count">(5)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%A8%AD%E8%A8%88/" data-gtm-click-label="user-tags"> 設計 <span class="count">(41)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%AA%AD%E3%81%BF%E7%89%A9/" data-gtm-click-label="user-tags"> 読み物 <span class="count">(46)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%B3%87%E6%96%99/" data-gtm-click-label="user-tags"> 資料 <span class="count">(7)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%B3%87%E6%A0%BC/" data-gtm-click-label="user-tags"> 資格 <span class="count">(3)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%B5%B7%E6%A5%AD/" data-gtm-click-label="user-tags"> 起業 <span class="count">(12)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%BB%8A/" data-gtm-click-label="user-tags"> 車 <span class="count">(4)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%BB%A2%E8%81%B7/" data-gtm-click-label="user-tags"> 転職 <span class="count">(14)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E8%BC%B8%E5%85%A5%E6%A5%AD/" data-gtm-click-label="user-tags"> 輸入業 <span class="count">(6)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%96%8B%E7%99%BA/" data-gtm-click-label="user-tags"> 開発 <span class="count">(207)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83/" data-gtm-click-label="user-tags"> 開発環境 <span class="count">(6)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%9A%9C%E5%AE%B3/" data-gtm-click-label="user-tags"> 障害 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%9B%91%E5%AD%A6/" data-gtm-click-label="user-tags"> 雑学 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%9B%91%E8%B2%A8/" data-gtm-click-label="user-tags"> 雑貨 <span class="count">(6)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C/" data-gtm-click-label="user-tags"> 電子工作 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%9B%BB%E5%AD%90%E6%9B%B8%E7%B1%8D/" data-gtm-click-label="user-tags"> 電子書籍 <span class="count">(12)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%9F%B3%E6%A5%BD/" data-gtm-click-label="user-tags"> 音楽 <span class="count">(1)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%A3%B2%E3%81%BF%E4%BC%9A/" data-gtm-click-label="user-tags"> 飲み会 <span class="count">(2)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%A3%B2%E9%A3%9F%E5%BA%97/" data-gtm-click-label="user-tags"> 飲食店 <span class="count">(13)</span> </a> </li> <li class="js-frequent-tag is-hidden"> <a href="/shunt_i/%E9%AB%98%E6%A0%A1%E9%87%8E%E7%90%83/" data-gtm-click-label="user-tags"> 高校野球 <span class="count">(1)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80/" data-gtm-click-label="user-tags"> あとで読む <span class="count">(268)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9/" data-gtm-click-label="user-tags"> webサービス <span class="count">(242)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/%E9%96%8B%E7%99%BA/" data-gtm-click-label="user-tags"> 開発 <span class="count">(207)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/" data-gtm-click-label="user-tags"> プログラミング <span class="count">(144)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/%E4%BB%95%E4%BA%8B/" data-gtm-click-label="user-tags"> 仕事 <span class="count">(131)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/music/" data-gtm-click-label="user-tags"> music <span class="count">(124)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/%E7%94%9F%E6%B4%BB/" data-gtm-click-label="user-tags"> 生活 <span class="count">(118)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/%E3%81%BE%E3%81%A8%E3%82%81/" data-gtm-click-label="user-tags"> まとめ <span class="count">(93)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/Web%E5%88%B6%E4%BD%9C/" data-gtm-click-label="user-tags"> Web制作 <span class="count">(92)</span> </a> </li> <li class="js-most-frequent-tag"> <a href="/shunt_i/design/" data-gtm-click-label="user-tags"> design <span class="count">(89)</span> </a> </li> </ul> <p class="centerarticle-sub-navi-more"> <button type="button" class="js-display-all-tags" data-gtm-click-label="user-tags-show-all">タグをすべて表示</button> </p> </div> <div class="centerarticle-sidebar-menu"> <h3 class="centerarticle-aside-title">関連タグで絞り込む (6)</h3> <ul class="centerarticle-sub-navi"> <li> <a href="/shunt_i/DDD/AI/" > AI </a> </li> <li> <a href="/shunt_i/DDD/DB/" > DB </a> </li> <li> <a href="/shunt_i/DDD/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80/" > あとで読む </a> </li> <li> <a href="/shunt_i/DDD/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/" > プログラミング </a> </li> <li> <a href="/shunt_i/DDD/%E8%A8%AD%E8%A8%88/" > 設計 </a> </li> <li> <a href="/shunt_i/DDD/%E9%96%8B%E7%99%BA/" > 開発 </a> </li> </ul> <p class="centerarticle-sub-navi-more"> <a href="/shunt_i/bookmark">タグの絞り込みを解除</a> </p> </div> </div> <div class="center-container"> <div class="centerarticle-title-container"> <h2 class="centerarticle-title"> DDDに関するshunt_iのブックマーク (12) </h2> </div> <div > <script type="text/x-template" id="template-short-url-click"> {{#tweet_url}} <a href="{{tweet_url}}" target="_blank" rel="noopener noreferrer" data-gtm-click-label="reaction-twitter-clicks"><span>{{count}} clicks</span></a> {{/tweet_url}} {{^tweet_url}} <span>{{count}} clicks</span> {{/tweet_url}} </script> <script type="text/x-template" id="template-bookmark-item"> {{^is_wiped}} <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="{{url}}"> <div class="centerarticle-entry {{#has_image}}is-image-entry-unit{{/has_image}}"> <h3 class="centerarticle-entry-title"> <a href="{{url}}" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener{{#noreferrer}} noreferrer{{/noreferrer}}" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="{{favicon_url}}" alt="">{{title}}</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="{{page_url}}" class="js-keyboard-entry-page-openable" title="{{title}} ({{total_bookmarks}}ブックマーク)" data-gtm-click-label="user-bookmark-users">{{total_bookmarks_with_user_postfix}}</a> </span> </li> <li> <a href="/shunt_i/{{url_query}}" title="『{{root_title}}』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> {{root_title}} </a> </li> {{#is_categorized}} <li><a href="{{category_path}}" data-gtm-click-label="user-bookmark-category">{{category_title}}</a></li> {{/is_categorized}} </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">{{{summary_with_keyword_links}}}</p> {{#has_image}} <a href="{{canonical_url}}" class="centerarticle-entry-image" target="_blank" rel="noopener{{#noreferrer}} noreferrer{{/noreferrer}}" data-gtm-click-label="user-bookmark-thumb"> <img src="{{image_url}}" alt="{{title}}"> </a> {{/has_image}} </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-{{location_id}}"> <div class="centerarticle-reaction-comment js-user-bookmark-comment {{badge_icon}}" data-url="{{url}}" data-user-name="{{author_name}}"> <a href="{{top_page_path}}" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="{{profile_icon_url}}" alt="{{author_name}}" title="{{author_name}}" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="{{anchor_url}}" class="js-anchor-path" data-gtm-click-label="user-reaction-username">{{author_name}}</a></span> <span class="centerarticle-reaction-timestamp">{{created}}</span> <span class="js-private-icon status {{#is_public}}is-hidden{{/is_public}}"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment">{{{comment_expanded}}}</span> <ul class="centerarticle-reaction-tags js-tag-text"> {{#tags}} <li><a href="/{{author_name}}/{{escaped_label}}/" data-gtm-click-label="user-reaction-tag">{{label}}</a></li> {{/tags}} </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="{{#is_bookmark}}comment-permalink{{/is_bookmark}}{{^is_bookmark}}original-permalink{{/is_bookmark}} js-comment-permalink"> <a href="{{comment_page_path}}" data-gtm-click-label="user-reaction-permalink" rel="{{#should_nofollow}}nofollow{{/should_nofollow}}">{{#is_bookmark}}リスト{{/is_bookmark}}{{^is_bookmark}}リンク{{/is_bookmark}}</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> {{#following_bookmarks}} <li> <a href="{{anchor_url}}" class="following-bookmark-link" data-gtm-click-label="user-bookmark-following-bookmarker-icon"> <img src="{{profile_icon_url}}" alt="{{author_name}}" class="following-bookmark-icon" > </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{author_name}}</span><span class="following-bookmark-timestamp">{{created}}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags"> {{ #tags }}<li>{{ label }}</li>{{ /tags }} </ul> </span> </span> </li> {{/following_bookmarks}} {{#following_bookmarks.length}} <li class="centerarticle-reaction-following-more"><button type="button" class="js-show-all-following-bookmarks" data-gtm-click-label="user-bookmark-showall-following-bookmarks">すべて表示</button></li> {{/following_bookmarks.length}} </ul> <div class="js-user-following-bookmarks-detail is-hidden"> {{#following_bookmarks}} <div class="centerarticle-reaction-comment js-user-bookmark-comment {{badge_icon}}" data-url="{{url}}" data-user-name="{{author_name}}"> <a href="{{top_page_path}}" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="{{profile_icon_url}}" alt="{{author_name}}" title="{{author_name}}" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="{{anchor_url}}" class="js-anchor-path" data-gtm-click-label="user-reaction-username">{{author_name}}</a></span> <span class="centerarticle-reaction-timestamp">{{created}}</span> <span class="js-private-icon status {{#is_public}}is-hidden{{/is_public}}"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment">{{{comment_expanded}}}</span> <ul class="centerarticle-reaction-tags js-tag-text"> {{#tags}} <li><a href="/{{author_name}}/{{escaped_label}}/" data-gtm-click-label="user-reaction-tag">{{label}}</a></li> {{/tags}} </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="{{#is_bookmark}}comment-permalink{{/is_bookmark}}{{^is_bookmark}}original-permalink{{/is_bookmark}} js-comment-permalink"> <a href="{{comment_page_path}}" data-gtm-click-label="user-reaction-permalink" rel="{{#should_nofollow}}nofollow{{/should_nofollow}}">{{#is_bookmark}}リスト{{/is_bookmark}}{{^is_bookmark}}リンク{{/is_bookmark}}</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> {{/following_bookmarks}} </div> </li> {{/is_wiped}} </script> <script type="text/x-template" id="template-following-bookmarker-icon"> <li> <a href="{{anchor_url}}" class="following-bookmark-link" data-gtm-click-label="user-bookmark-following-bookmarker-icon"> <img src="{{profile_icon_url}}" alt="{{author_name}}" class="following-bookmark-icon" > </a> <span class="following-bookmark-popup"> <span class="following-bookmark-username">{{author_name}}</span><span class="following-bookmark-timestamp">{{created}}</span> <span class="following-bookmark-text"> {{ #comment }}<span class="following-bookmark-comment">{{ comment }}</span>{{ /comment }} <ul class="following-bookmark-tags"> {{ #tags }}<li>{{ label }}</li>{{ /tags }} </ul> </span> </span> </li> </script> <script type="text/x-template" id="template-bookmark-item-editor"> <div class="centerarticle-entry {{#has_image}}is-image-entry-unit{{/has_image}}"> <h3 class="centerarticle-entry-title"> <a href="{{url}}" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener{{#noreferrer}} noreferrer{{/noreferrer}}" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="{{favicon_url}}" alt="">{{title}}</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="{{page_url}}" class="js-keyboard-entry-page-openable" title="{{title}} ({{total_bookmarks}}ブックマーク)" data-gtm-click-label="user-bookmark-users">{{total_bookmarks_with_user_postfix}}</a> </span> </li> <li> <a href="/shunt_i/{{url_query}}" title="『{{root_title}}』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> {{root_title}} </a> </li> {{#is_categorized}} <li><a href="{{category_path}}" data-gtm-click-label="user-bookmark-category">{{category_title}}</a></li> {{/is_categorized}} </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">{{{summary_with_keyword_links}}}</p> {{#has_image}} <a href="{{canonical_url}}" class="centerarticle-entry-image" target="_blank" rel="noopener{{#noreferrer}} noreferrer{{/noreferrer}}" data-gtm-click-label="user-bookmark-thumb"> <img src="{{image_url}}" alt="{{title}}"> </a> {{/has_image}} </div> </div> </script> <script type="text/x-template" id="template-bookmark-pager"> <li> <div class="centerarticle-pager"> <span class="centerarticle-waiting js-read-more-waiting is-hidden"><img src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/common/loading@2x.gif" alt="残りのブックマークを読み込んでいます" width="16" height="16" /></span> {{#previous}} <a href="{{page_path}}">{{label}}</a> {{/previous}} {{#pages}} {{#page_path}} <span><a href="{{page_path}}">{{label}}</a></span> {{/page_path}} {{^page_path}} <span>{{label}}</span> {{/page_path}} {{/pages}} {{#next}} <a href="{{page_path}}">{{label}}</a> {{/next}} </div> </li> </script> <ul class="js-user-bookmark-item-list js-keyboard-controllable-container"> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://zenn.dev/mizchi/articles/ai-ddd-tdd-prompt"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/mizchi/articles/ai-ddd-tdd-prompt" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fmizchi%2Farticles%2Fai-ddd-tdd-prompt" alt="">自分のコーディングスタイル(TDD/DDD/FP)をAIに叩き込む</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/mizchi/articles/ai-ddd-tdd-prompt" class="js-keyboard-entry-page-openable" title="自分のコーディングスタイル(TDD/DDD/FP)をAIに叩き込む (344ブックマーク)" data-gtm-click-label="user-bookmark-users">344 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fzenn.dev%2Fmizchi" title="『zenn.dev/mizchi』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> zenn.dev/mizchi </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary"><a data-gtm-click-label="entry-summary-keyword" href="/q/ai">AI</a> に自分のスタイルでコードを書かせたい。 自分のコーディングスタイルを端的にまとめると、たぶんこう。 TDD でミニマルにはじめるのが好き でも DDD で段階的にドメインモデリングもしたい 実装は関数型ドメインモデリングに寄せる これを<a data-gtm-click-label="entry-summary-keyword" href="/q/ai">AI</a>に叩き込みたい。資料を読ませてプロンプトを作って、それにそって実装させる。 <a data-gtm-click-label="entry-summary-keyword" href="/q/%E3%82%A8%E3%83%B4%E3%82%A1">エヴァ</a>ンスのDDDと軽量DDDの2つでやらせてみる。 コードはここ 自分のコーディングスタイルに合わせたプロンプトを作成する MCPエージェントで検索とURL展開を使える状態で次のように指示をした。(自作ディープサーチみたいなもの) インターネットでDDDについて調べさせる インターネットで関数型ドメインモデリングについて調べさせる インターネットでTDDについて調べさせる プロンプトとして使えるように要点を圧縮しろ 端的に圧縮しろ もっと圧縮しろ で、でてきたのがこれ。こ</p> <a href="https://zenn.dev/mizchi/articles/ai-ddd-tdd-prompt" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/9700787375840594a6887eacd6d1330542596ff1/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--Z5q6U7aG--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E8%252587%2525AA%2525E5%252588%252586%2525E3%252581%2525AE%2525E3%252582%2525B3%2525E3%252583%2525BC%2525E3%252583%252587%2525E3%252582%2525A3%2525E3%252583%2525B3%2525E3%252582%2525B0%2525E3%252582%2525B9%2525E3%252582%2525BF%2525E3%252582%2525A4%2525E3%252583%2525AB%252528TDD%25252FDDD%25252FFP%252529%2525E3%252582%252592AI%2525E3%252581%2525AB%2525E5%25258F%2525A9%2525E3%252581%25258D%2525E8%2525BE%2525BC%2525E3%252582%252580%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Amizchi%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2liclRHT052Z3d3ay1fNGxlcVk4TGNGSlNuX0FoWnpEWVlKaXJNcWc9czI1MC1j%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="自分のコーディングスタイル(TDD/DDD/FP)をAIに叩き込む"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4767001210183751169"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://zenn.dev/mizchi/articles/ai-ddd-tdd-prompt" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20250303#bookmark-4767001210183751169" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2025/03/03</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment"></span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> <li><a href="/shunt_i/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0/" data-gtm-click-label="user-reaction-tag">プログラミング</a></li> <li><a href="/shunt_i/AI/" data-gtm-click-label="user-reaction-tag">AI</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4767001210183751169/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://qiita.com/basio/items/b7722208a244fb768fee"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://qiita.com/basio/items/b7722208a244fb768fee" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fqiita.com%2Fbasio%2Fitems%2Fb7722208a244fb768fee" alt="">ドメイン駆動設計 - 実践企業が語るBefore/After - に参加して - Qiita</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/qiita.com/basio/items/b7722208a244fb768fee" class="js-keyboard-entry-page-openable" title="ドメイン駆動設計 - 実践企業が語るBefore/After - に参加して - Qiita (110ブックマーク)" data-gtm-click-label="user-bookmark-users">110 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fqiita.com%2Fbasio" title="『qiita.com/basio』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> qiita.com/basio </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">Deleted art<a data-gtm-click-label="entry-summary-keyword" href="/q/ICL">icl</a>es cannot be recovered. Draft of this art<a data-gtm-click-label="entry-summary-keyword" href="/q/ICL">icl</a>e would be also deleted. Are you sure you want to delete this art<a data-gtm-click-label="entry-summary-keyword" href="/q/ICL">icl</a>e? Findy Tools開催のオンラインイベントドメイン駆動設計 - 実践企業が語るBefore/After -に参加してきました。 ドメイン駆動設計(以下DDD)について<a data-gtm-click-label="entry-summary-keyword" href="/q/LINE">LINE</a>ヤフーの山口氏、塩川氏とパーソルキャリアの池田氏が講演されました。 この記事では、講演内容のまとめと所感を交えてお届けします。 なぜDDDを採用したのか <a data-gtm-click-label="entry-summary-keyword" href="/q/LINE">LINE</a>ヤフー コミュニケーションコストの増加とシステムの複雑化に対応するため。 コミュニケーション 言葉の違いから認識の違いが発生している マーケと<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%8A%80%E8%A1%93">技術</a>で言葉の変換が必要 システム 1クラスにすべての処理が書</p> <a href="https://qiita.com/basio/items/b7722208a244fb768fee" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/1a23dfc71f5e24421424874372bc156aa5c19058/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRmxoMy5nb29nbGV1c2VyY29udGVudC5jb20lMkZhLSUyRkFBdUU3bURJdTU3WTNqajlTMkRpbUxHVTRzdmVVRl9kNk4wdlNRMm94ZUNGU2clM0RzNTA_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmZtPXBuZzMyJnM9NDE1MDY5YWViMjZlZWMwMDE4ZDI3MjA5ZmUwMTA5MWE%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253Db5eec1ed0dd0ca76c1720bf2b4562409%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JUUzJTgzJTg5JUUzJTgzJUExJUUzJTgyJUE0JUUzJTgzJUIzJUU5JUE3JTg2JUU1JThCJTk1JUU4JUE4JUFEJUU4JUE4JTg4JTIwLSUyMCVFNSVBRSU5RiVFOCVCNyVCNSVFNCVCQyU4MSVFNiVBNSVBRCVFMyU4MSU4QyVFOCVBQSU5RSVFMyU4MiU4QkJlZm9yZSUyRkFmdGVyJTIwLSUyMCVFMyU4MSVBQiVFNSU4RiU4MiVFNSU4QSVBMCVFMyU4MSU5NyVFMyU4MSVBNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1wYWQ9MCZzPTk4ZWQ5ZmVkMjI0MjYyOTEwNmMxOTI0ZDY3ZDM3Yzk5%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBiYXNpbyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTZkNDlmYmNjNzdhZWI5MTcyNzEzNmM3MDI0ZjM2Mjc5%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3D6c984118307719829fa8b7629c551b6b" alt="ドメイン駆動設計 - 実践企業が語るBefore/After - に参加して - Qiita"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4765326483216800992"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://qiita.com/basio/items/b7722208a244fb768fee" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20250126#bookmark-4765326483216800992" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2025/01/26</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment"></span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80/" data-gtm-click-label="user-reaction-tag">あとで読む</a></li> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4765326483216800992/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://zenn.dev/penginpenguin/articles/4b934b6468d3cf"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/penginpenguin/articles/4b934b6468d3cf" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fpenginpenguin%2Farticles%2F4b934b6468d3cf" alt="">「ドメイン駆動設計をはじめよう」の感想</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/penginpenguin/articles/4b934b6468d3cf" class="js-keyboard-entry-page-openable" title="「ドメイン駆動設計をはじめよう」の感想 (144ブックマーク)" data-gtm-click-label="user-bookmark-users">144 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fzenn.dev%2Fpenginpenguin" title="『zenn.dev/penginpenguin』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> zenn.dev/penginpenguin </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">1章 事業活動を分析する この章は事業活動を理解するためのドメイン駆動設計の考え方とやり方が解説されています。 感想 ドメイン駆動設計は事業活動と構造を理解するところから始まります。 理想的には設計者や開発者が業務全体を完全に理解したうえで設計や開発を進めることが望ましいです。 しかし、現実としては設計者や開発者がすべての業務を完全に理解することは極めて難しいです。 そこで重要となるのがコミュニケーションとなります。 業務エキスパートと密にコミュニケーションをとり、<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>来の意図を漏れなく汲み取ることがなにより重要になると思います。(どのようにくみ取るかは次章で解説されています。) この辺りは<a data-gtm-click-label="entry-summary-keyword" href="/q/sier">SIer</a>として参画する場合に特に必要とされると思います。 いかにステークホルダーを巻き込みながら業務エキスパートとの信頼関係を築けるかが、<a data-gtm-click-label="entry-summary-keyword" href="/q/%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88">プロジェクト</a>の成功を左右すると言っても過言ではないと思います。 2</p> <a href="https://zenn.dev/penginpenguin/articles/4b934b6468d3cf" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/b7e6d73636c12e0c0576c16f280a59cd8c52f862/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--aEsVspdS--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3A%2525E3%252580%25258C%2525E3%252583%252589%2525E3%252583%2525A1%2525E3%252582%2525A4%2525E3%252583%2525B3%2525E9%2525A7%252586%2525E5%25258B%252595%2525E8%2525A8%2525AD%2525E8%2525A8%252588%2525E3%252582%252592%2525E3%252581%2525AF%2525E3%252581%252598%2525E3%252582%252581%2525E3%252582%252588%2525E3%252581%252586%2525E3%252580%25258D%2525E3%252581%2525AE%2525E6%252584%25259F%2525E6%252583%2525B3%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3A%2525E3%252581%2525BA%2525E3%252582%252593%2525E3%252581%25258E%2525E3%252582%252593%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2IyZDhmODRkNTAuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="「ドメイン駆動設計をはじめよう」の感想"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4764167902744493344"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://zenn.dev/penginpenguin/articles/4b934b6468d3cf" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20250101#bookmark-4764167902744493344" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2025/01/01</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment"></span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/%E3%81%82%E3%81%A8%E3%81%A7%E8%AA%AD%E3%82%80/" data-gtm-click-label="user-reaction-tag">あとで読む</a></li> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4764167902744493344/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://speakerdeck.com/panda_program/no-more-lightweight-ddd"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://speakerdeck.com/panda_program/no-more-lightweight-ddd" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fspeakerdeck.com%2Fpanda_program%2Fno-more-lightweight-ddd" alt="">軽量DDDはもういらない! スタイルガイド本で OOPの実装パターンを学ぼう</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/speakerdeck.com/panda_program/no-more-lightweight-ddd" class="js-keyboard-entry-page-openable" title="軽量DDDはもういらない! スタイルガイド本で OOPの実装パターンを学ぼう (261ブックマーク)" data-gtm-click-label="user-bookmark-users">261 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fspeakerdeck.com%2Fpanda_program" title="『speakerdeck.com/panda_program』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> speakerdeck.com/panda_program </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">DDDからOOPのプラクティスを学ぶのではなく、OOPのベストプラクティスをスタイルガイド<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>で学んでDDDに活かそう</p> <a href="https://speakerdeck.com/panda_program/no-more-lightweight-ddd" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/995be8dc9fd6651632d9451ccabd1cf9de42ccf6/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fa98b3e5cd9674519a865319a56e01df9%2Fslide_0.jpg%3F32530125" alt="軽量DDDはもういらない! スタイルガイド本で OOPの実装パターンを学ぼう"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4761659252282019328"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://speakerdeck.com/panda_program/no-more-lightweight-ddd" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20241109#bookmark-4761659252282019328" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2024/11/09</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment"></span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4761659252282019328/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://zenn.dev/kohii/articles/4a68e768c93573"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/kohii/articles/4a68e768c93573" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fkohii%2Farticles%2F4a68e768c93573" alt="">DDDを実践するための手引き(ドメインイベント編)</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/kohii/articles/4a68e768c93573" class="js-keyboard-entry-page-openable" title="DDDを実践するための手引き(ドメインイベント編) (112ブックマーク)" data-gtm-click-label="user-bookmark-users">112 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fzenn.dev%2Fkohii" title="『zenn.dev/kohii』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> zenn.dev/kohii </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">ドメインイベントを扱う実装は様々な流派があり、<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>記事ではなるべく一般的なものを取り上げたいと思っていますが、あくまで一例です。 実装例は <a data-gtm-click-label="entry-summary-keyword" href="/q/kotlin">Kotlin</a> を使っていますが、他の言語でも同様の実装が可能です。 ドメインイベントとは イベントとは「過去に発生した出来事」であり、ドメインイベントは「ビジネスドメイン上で発生した重要な出来事を表すメッセージ」です。 (例: チケットが割り当てられた、注文がキャンセルされた) ドメインイベントはシステム内の状態の変化(=集約の状態の変化)を表現するものであり、通常は集約がドメインイベントの発生源となります。 用途 ドメインイベントは主に次のような目的で使用されます。 1. イベントの発生を起点に、別の処理をトリガーする ドメインイベントは、システムの異なる部分間を連携させるために使用されます。 ドメイン上の要件として「...したら...する」のようなフ</p> <a href="https://zenn.dev/kohii/articles/4a68e768c93573" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/4d29e2218e292368dab5172e023dc93b3dac5ca1/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--WzjhRARN--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3ADDD%2525E3%252582%252592%2525E5%2525AE%25259F%2525E8%2525B7%2525B5%2525E3%252581%252599%2525E3%252582%25258B%2525E3%252581%25259F%2525E3%252582%252581%2525E3%252581%2525AE%2525E6%252589%25258B%2525E5%2525BC%252595%2525E3%252581%25258D%2525EF%2525BC%252588%2525E3%252583%252589%2525E3%252583%2525A1%2525E3%252582%2525A4%2525E3%252583%2525B3%2525E3%252582%2525A4%2525E3%252583%252599%2525E3%252583%2525B3%2525E3%252583%252588%2525E7%2525B7%2525A8%2525EF%2525BC%252589%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Akohii%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyL2ZkYTgyMjQxN2UuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="DDDを実践するための手引き(ドメインイベント編)"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4756419412742929504"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://zenn.dev/kohii/articles/4a68e768c93573" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20240718#bookmark-4756419412742929504" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2024/07/18</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment"></span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> <li><a href="/shunt_i/%E8%A8%AD%E8%A8%88/" data-gtm-click-label="user-reaction-tag">設計</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4756419412742929504/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://zenn.dev/s3i7h/articles/12f25ca61fe02a"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://zenn.dev/s3i7h/articles/12f25ca61fe02a" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fzenn.dev%2Fs3i7h%2Farticles%2F12f25ca61fe02a" alt="">RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/zenn.dev/s3i7h/articles/12f25ca61fe02a" class="js-keyboard-entry-page-openable" title="RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応) (123ブックマーク)" data-gtm-click-label="user-bookmark-users">123 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fzenn.dev%2Fs3i7h" title="『zenn.dev/s3i7h』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> zenn.dev/s3i7h </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">結論 お手軽モノリスならAutoIn<a data-gtm-click-label="entry-summary-keyword" href="/q/CRE">cre</a>mentが効率的だしこれでいいよ アプリケーション側で主キーを生成したい場合はL<a data-gtm-click-label="entry-summary-keyword" href="/q/UI">UI</a>Dを作る必要があるよ。<a data-gtm-click-label="entry-summary-keyword" href="/q/gui">GUI</a>Dで大は小を兼ねよう 主キーで<a data-gtm-click-label="entry-summary-keyword" href="/q/gui">GUI</a>Dを使うなら<a data-gtm-click-label="entry-summary-keyword" href="/q/ulid">ULID</a>よりも<a data-gtm-click-label="entry-summary-keyword" href="/q/uuid">UUID</a>v7がおすすめだよ ただし分散されているエンジンによっては<a data-gtm-click-label="entry-summary-keyword" href="/q/uuid">UUID</a>v4の方が効率的になる場合もあるよ 主キーは原則公開しない方がいいよ <a data-gtm-click-label="entry-summary-keyword" href="/q/uuid">UUID</a>v7や<a data-gtm-click-label="entry-summary-keyword" href="/q/ulid">ULID</a>はユニーク性を持ったInstant(time<a data-gtm-click-label="entry-summary-keyword" href="/q/stamp">stamp</a>)としても使えるよ 分散されたシステムでは厳密な時系列性を担保することはできないよ、あきらめてロックをかけつつ連番を一か所で生成しよう <a data-gtm-click-label="entry-summary-keyword" href="/q/RDB">RDB</a>のPrimary Key(主キー)とは? <a data-gtm-click-label="entry-summary-keyword" href="/q/mysql">MySQL</a>、Po<a data-gtm-click-label="entry-summary-keyword" href="/q/stg">stg</a>re<a data-gtm-click-label="entry-summary-keyword" href="/q/SQL">sQL</a>などの<a data-gtm-click-label="entry-summary-keyword" href="/q/RDB">RDB</a>では各レコードを識別するために一意な値を必要とします。これをPrimary Key(主キー)と呼びます。別のカラムにUNIQUEなInd</p> <a href="https://zenn.dev/s3i7h/articles/12f25ca61fe02a" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/959ee9fa9a17ac79f702e5dac2bb5d8b54057f18/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fzenn%2Fimage%2Fupload%2Fs--YPhMNOc1--%2Fc_fit%252Cg_north_west%252Cl_text%3Anotosansjp-medium.otf_55%3ARDB%2525E3%252581%2525AE%2525E4%2525B8%2525BB%2525E3%252582%2525AD%2525E3%252583%2525BC%2525E3%252580%252581UUID%2525E4%2525BD%2525BF%2525E3%252581%2525A3%2525E3%252581%25259F%2525E6%252596%2525B9%2525E3%252581%25258C%2525E3%252581%252584%2525E3%252581%252584%2525E3%252581%2525AE%2525EF%2525BC%25259F%252528DDD%25252C%252520CleanArchitecture%2525E5%2525AF%2525BE%2525E5%2525BF%25259C%252529%252Cw_1010%252Cx_90%252Cy_100%2Fg_south_west%252Cl_text%3Anotosansjp-medium.otf_37%3Ayu-ichiro%252528s3i7h%252529%252Cx_203%252Cy_121%2Fg_south_west%252Ch_90%252Cl_fetch%3AaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzM1NWY5NWMwMTkuanBlZw%3D%3D%252Cr_max%252Cw_90%252Cx_87%252Cy_95%2Fv1627283836%2Fdefault%2Fog-base-w1200-v2.png" alt="RDBの主キー、UUID使った方がいいの?(DDD, CleanArchitecture対応)"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4753827670158624576"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://zenn.dev/s3i7h/articles/12f25ca61fe02a" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20240524#bookmark-4753827670158624576" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2024/05/24</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment"></span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DB/" data-gtm-click-label="user-reaction-tag">DB</a></li> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4753827670158624576/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://masuda220.jugem.jp/"> <div class="centerarticle-entry "> <h3 class="centerarticle-entry-title"> <a href="https://masuda220.jugem.jp/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fmasuda220.jugem.jp%2F" alt="">システム設計日記</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/masuda220.jugem.jp/" class="js-keyboard-entry-page-openable" title="システム設計日記 (72ブックマーク)" data-gtm-click-label="user-bookmark-users">72 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fmasuda220.jugem.jp%2F" title="『masuda220.jugem.jp』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> masuda220.jugem.jp </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">テスト駆動開発 和田卓人(<a data-gtm-click-label="entry-summary-keyword" href="/q/t-wada">t-wada</a>)さんによる『テスト駆動開発』の新訳版が出版されました。 オブジェクト指向でソフトウェアを開発するのであれば、この<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>とマーチンファウラーの『リファクタリング』は必<a data-gtm-click-label="entry-summary-keyword" href="/q/%E8%AA%AD%E6%9B%B8">読書</a>だと思います。この古典ともいえる『テスト駆動開発』が和田さんの手によって新訳版として復刊されたことは、ほんとうにすばらしいことです。 この<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>が出版された経緯と、和田さんはじめ関係者の方々のご努力については、和田さんの、このブログをぜひ読んでいただければと思います。 新訳版『テスト駆動開発』が出ます 新訳<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>は、単に原著が日<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>語で読めるようになっただけではありません。和田さんの手によって、原著にはない新たな価値が付け加えらました。 一つは、サンプルコードの工夫です。 できるだけ省略はしない変更箇所を目立つようにした各章末にその時点での全コードを記載する これらの工夫により、<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>に書かれた内容が、</p> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4750600497322801280"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://masuda220.jugem.jp/" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20240324#bookmark-4750600497322801280" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2024/03/24</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment">増田亨氏の記事、カテゴリ</span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> <li><a href="/shunt_i/%E8%A8%AD%E8%A8%88/" data-gtm-click-label="user-reaction-tag">設計</a></li> <li><a href="/shunt_i/%E9%96%8B%E7%99%BA/" data-gtm-click-label="user-reaction-tag">開発</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4750600497322801280/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://rakusui.org/ddd/"> <div class="centerarticle-entry "> <h3 class="centerarticle-entry-title"> <a href="https://rakusui.org/ddd/" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Frakusui.org%2Fddd%2F" alt="">ドメイン駆動設計入門【DDDをわかりやすく解説】 | 楽水</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/rakusui.org/ddd/" class="js-keyboard-entry-page-openable" title="ドメイン駆動設計入門【DDDをわかりやすく解説】 | 楽水 (63ブックマーク)" data-gtm-click-label="user-bookmark-users">63 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Frakusui.org%2F" title="『rakusui.org』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> rakusui.org </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">突然ですが、<a data-gtm-click-label="entry-summary-keyword" href="/q/%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2">エンジニア</a>の皆さま、<a data-gtm-click-label="entry-summary-keyword" href="/q/Java">Java</a>で開発したWebアプリケーションの構成、このようになっていませんか? データとgetter/setterだけのオブジェクト(<a data-gtm-click-label="entry-summary-keyword" href="/q/Java">Java</a>Bean) 画面のコントロールやビジネスロジックの処理はServletが行う データベースのアクセスは、DAO(Data Access Object)に任せる もしそうであれば、そのシステム、ドメインモデル貧血症に陥ってます。 これは、データとgetter/setterだけのオブジェクトを、An<a data-gtm-click-label="entry-summary-keyword" href="/q/EM">em</a>ic(貧血症になって元気がない)オブジェクトと称し、オブジェクトとはいうものの実質的にはデータであり、それをやりとりするだけの手続き型システムなっていることを嘆いたものです。 今回は、<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>来のオブジェクト指向に立ち返り、そのメリットである高い保守性、再利用性、拡張性を備えた変化に強いシステムを作るための設計方法、ドメイン駆動設計</p> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4711666403482695650"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://rakusui.org/ddd/" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20240314#bookmark-4711666403482695650" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2024/03/14</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment"></span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> <li><a href="/shunt_i/%E8%A8%AD%E8%A8%88/" data-gtm-click-label="user-reaction-tag">設計</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4711666403482695650/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="nofollow">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://godiva-frappuccino.hatenablog.com/entry/2023/06/10/191437"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://godiva-frappuccino.hatenablog.com/entry/2023/06/10/191437" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fgodiva-frappuccino.hatenablog.com%2Fentry%2F2023%2F06%2F10%2F191437" alt="">『現場で役立つシステム設計の原則』を読みました - 人間のあるべき姿の探索</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/godiva-frappuccino.hatenablog.com/entry/2023/06/10/191437" class="js-keyboard-entry-page-openable" title="『現場で役立つシステム設計の原則』を読みました - 人間のあるべき姿の探索 (239ブックマーク)" data-gtm-click-label="user-bookmark-users">239 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fgodiva-frappuccino.hatenablog.com%2F" title="『godiva-frappuccino.hatenablog.com』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> godiva-frappuccino.hatenablog.com </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">はじめに 現場で役立つシステム設計の原則を知りたいと思っていたのですが、丁度現場で役立つシステム設計の原則について言及されている書籍があったので読みました。 gihyo.jp ある程度知名度のある書籍で、Qi<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>aや<a data-gtm-click-label="entry-summary-keyword" href="/q/Zenn">Zenn</a>等でまとめられている方がいらっしゃるのですが、自分の<a data-gtm-click-label="entry-summary-keyword" href="/q/%E3%82%A2%E3%82%A6%E3%83%88%E3%83%97%E3%83%83%E3%83%88">アウトプット</a>として、感想も交えてまとめていきます。 全体の話 この書籍の雰囲気や見通しを立ちやすくするために、参考書籍の一覧を抜粋して紹介します。 『エリック・<a data-gtm-click-label="entry-summary-keyword" href="/q/%E3%82%A8%E3%83%B4%E3%82%A1">エヴァ</a>ンスのドメイン駆動設計ソフトウェアの核心にある複雑さに立ち向かう』『新装版リファクタリング既存のコードを安全に改善する』『<a data-gtm-click-label="entry-summary-keyword" href="/q/SQL">SQL</a>アンチパターン』『エンタープライズアプリケーションアーキテクチャパターン』『エクストリームプログラミング』 システム設計の全般を対象にしているのですが、ベースの思考としてはオブジェクト指向プログラミングから発展して、ドメイン駆動設</p> <a href="https://godiva-frappuccino.hatenablog.com/entry/2023/06/10/191437" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/59191451b09207839a609f18c1a23273c85b5ddd/height=288;version=1;width=512/https%3A%2F%2Fogimage.blog.st-hatena.com%2F26006613493658716%2F820878482940404454%2F1687411764" alt="『現場で役立つシステム設計の原則』を読みました - 人間のあるべき姿の探索"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4737764728576913445"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://godiva-frappuccino.hatenablog.com/entry/2023/06/10/191437" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20230611#bookmark-4737764728576913445" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2023/06/11</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment">“Chapter 7 画面とドメインオブジェクトの設計を連動させる”</span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> <li><a href="/shunt_i/%E8%A8%AD%E8%A8%88/" data-gtm-click-label="user-reaction-tag">設計</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4737764728576913445/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://qiita.com/mikesorae/items/ff8192fb9cf106262dbf"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://qiita.com/mikesorae/items/ff8192fb9cf106262dbf" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fqiita.com%2Fmikesorae%2Fitems%2Fff8192fb9cf106262dbf" alt="">Repositoryパターンのアンチパターン - Qiita</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/qiita.com/mikesorae/items/ff8192fb9cf106262dbf" class="js-keyboard-entry-page-openable" title="Repositoryパターンのアンチパターン - Qiita (372ブックマーク)" data-gtm-click-label="user-bookmark-users">372 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fqiita.com%2Fmikesorae" title="『qiita.com/mikesorae』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> qiita.com/mikesorae </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">よく見かけるRepos<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>oryパターンのアンチパターンの紹介と対策です。 Repos<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>oryパターンとは Repos<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>oryパターンとは永続化を隠蔽するためのデザインパターンで、DAO(DataAccessObject)パターンに似ていますが、より高い抽象度でエンティティの操作から永続化ストレージを完全に隠蔽します。 例えば<a data-gtm-click-label="entry-summary-keyword" href="/q/DB">DB</a>コネクションやストレージのパス等はReposiotoryのインターフェースからは隠蔽され、Repos<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>oryのユーザは永続化ストレージが何であるか(例えば<a data-gtm-click-label="entry-summary-keyword" href="/q/mysql">MySQL</a>やRedis等)を意識することなく保存や検索の操作を行うことができるようになります。 これによりRepos<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>oryを利用するロジックは業務的な操作に集中できるようになる他、データベースの移行等の永続化層の変更が発生した際にロジックへの影響を切り離すことができるようになります。 // 例) ユーザ</p> <a href="https://qiita.com/mikesorae/items/ff8192fb9cf106262dbf" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/eeb0b2132f8289ddb6d960340bcfa8f08679f8ed/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UmVwb3NpdG9yeSVFMyU4MyU5MSVFMyU4MiVCRiVFMyU4MyVCQyVFMyU4MyVCMyVFMyU4MSVBRSVFMyU4MiVBMiVFMyU4MyVCMyVFMyU4MyU4MSVFMyU4MyU5MSVFMyU4MiVCRiVFMyU4MyVCQyVFMyU4MyVCMyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9YTY2ZjMxY2FiOWM3NGY4ZDUxMGFlMGU2NDA0OGE4ZDQ%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBtaWtlc29yYWUmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTYwNWFjNWRjZDkyYzA3ODJkMmRhNWM3MzcxM2VhYTk1%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3D34ba68cdecdf81c2d91b235ef7d63ebc" alt="Repositoryパターンのアンチパターン - Qiita"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-364371345"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://qiita.com/mikesorae/items/ff8192fb9cf106262dbf" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20230527#bookmark-364371345" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2023/05/27</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment">“複雑なクエリをRepositoryで頑張って発行する”</span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> <li><a href="/shunt_i/%E8%A8%AD%E8%A8%88/" data-gtm-click-label="user-reaction-tag">設計</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/364371345/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://qiita.com/MinoDriven/items/5e69d9bd028aa350e2c4"> <div class="centerarticle-entry is-image-entry-unit"> <h3 class="centerarticle-entry-title"> <a href="https://qiita.com/MinoDriven/items/5e69d9bd028aa350e2c4" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fqiita.com%2FMinoDriven%2Fitems%2F5e69d9bd028aa350e2c4" alt="">設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/qiita.com/MinoDriven/items/5e69d9bd028aa350e2c4" class="js-keyboard-entry-page-openable" title="設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita (393ブックマーク)" data-gtm-click-label="user-bookmark-users">393 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fqiita.com%2FMinoDriven" title="『qiita.com/MinoDriven』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> qiita.com/MinoDriven </a> </li> <li><a href="/hotentry/it" data-gtm-click-label="user-bookmark-category">テクノロジー</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">/// &lt;summary&gt;契約コントローラー&lt;/summary&gt; pu<a data-gtm-click-label="entry-summary-keyword" href="/q/BL">bl</a>ic class ContractController &#123; private ContractAmount _contractAmount; /// &lt;summary&gt;税込金額を計算する。&lt;/summary&gt; /// &lt;param name=&quot;amoun<a data-gtm-click-label="entry-summary-keyword" href="/q/TeX">tEx</a>cludingTax&quot;&gt;税別金額。&lt;/param&gt; /// &lt;param name=&quot;salesTaxRate&quot;&gt;消費税率。&lt;/param&gt; /// &lt;returns&gt;税込金額。&lt;/returns&gt; pu<a data-gtm-click-label="entry-summary-keyword" href="/q/BL">bl</a>ic int CalculateAmountIncludingTax(int amoun<a data-gtm-click-label="entry-summary-keyword" href="/q/TeX">tEx</a>cludingTax, decimal salesTaxRate) &#123; return (int)(amoun<a data-gtm-click-label="entry-summary-keyword" href="/q/TeX">tEx</a>cludingTax * (1.0m + sales</p> <a href="https://qiita.com/MinoDriven/items/5e69d9bd028aa350e2c4" class="centerarticle-entry-image" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-thumb"> <img src="https://cdn-ak-scissors.b.st-hatena.com/image/square/969d8bcb7f5decf7045b67aa8b50c2e5a4cd7cca/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU4JUE4JUFEJUU4JUE4JTg4JUU4JUE2JTgxJUU0JUJCJUI2JUUzJTgyJTkyJUUzJTgyJUFFJUUzJTgzJTgzJUUzJTgzJTgxJUUzJTgyJUFFJUUzJTgzJTgxJUUzJTgxJUFCJUU4JUE5JUIwJUUzJTgyJTgxJUUzJTgxJTlGVmFsdWVPYmplY3QlRTMlODElQTclRTQlQkQlOEUlRTUlODclOUQlRTklOUIlODYlRTMlODIlQUYlRTMlODMlQTklRTMlODIlQjklRTMlODIlOTIlRTclODglODYlRTYlQUUlQkElRTMlODElOTklRTMlODIlOEImdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzFFMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTQzYWZiZDYzZmRkOTcxN2JkOThkODBmZDk3YWQ2YTFi%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBNaW5vRHJpdmVuJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz01MDFiNDU4NmM2ZWY0YWYzOThjMDA3ZDE5OGIwZmUzZg%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4gUkVBRFlGT1LmoKrlvI_kvJrnpL4%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%25231E2121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D016dc538b62084c51ee927ffdf6e8ec6" alt="設計要件をギッチギチに詰めたValueObjectで低凝集クラスを爆殺する - Qiita"> </a> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-4676808925709854914"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://qiita.com/MinoDriven/items/5e69d9bd028aa350e2c4" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20191220#bookmark-4676808925709854914" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2019/12/20</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment">課題が共感できるし解決法も良さそう、丁寧でわかりやすかった。ディレクトリ構成がどうなるかも欲しかったな。</span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> <li><a href="/shunt_i/%E8%A8%AD%E8%A8%88/" data-gtm-click-label="user-reaction-tag">設計</a></li> <li><a href="/shunt_i/%E9%96%8B%E7%99%BA/" data-gtm-click-label="user-reaction-tag">開発</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/4676808925709854914/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li class="bookmark-item js-user-bookmark-item js-intent-share-bookmark" data-target-url="https://www.infoq.com/jp/minibooks/domain-driven-design-quickly"> <div class="centerarticle-entry "> <h3 class="centerarticle-entry-title"> <a href="https://www.infoq.com/jp/minibooks/domain-driven-design-quickly" class="js-clickable-link js-keyboard-openable" target="_blank" rel="noopener" data-gtm-click-label="user-bookmark-title"><img class="centerarticle-entry-favicon" src="https://cdn-ak2.favicon.st-hatena.com/64?url=https%3A%2F%2Fwww.infoq.com%2Fjp%2Fminibooks%2Fdomain-driven-design-quickly%2F" alt="">InfoQ: Domain Driven Design(ドメイン駆動設計) Quickly 日本語版</a> </h3> <ul class="centerarticle-entry-data"> <li> <span class="centerarticle-users"> <a href="/entry/s/www.infoq.com/jp/minibooks/domain-driven-design-quickly/" class="js-keyboard-entry-page-openable" title="InfoQ: Domain Driven Design(ドメイン駆動設計) Quickly 日本語版 (474ブックマーク)" data-gtm-click-label="user-bookmark-users">474 users</a> </span> </li> <li> <a href="/shunt_i/?url=https%3A%2F%2Fwww.infoq.com%2F" title="『www.infoq.com』の新着エントリー" data-gtm-click-label="user-bookmark-domain"> www.infoq.com </a> </li> <li><a href="/hotentry/knowledge" data-gtm-click-label="user-bookmark-category">学び</a></li> </ul> <div class="centerarticle-entry-contents"> <p class="centerarticle-entry-summary">Spring Bootによる<a data-gtm-click-label="entry-summary-keyword" href="/q/API">API</a>バックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical <a data-gtm-click-label="entry-summary-keyword" href="/q/gui">Gui</a>de to <a data-gtm-click-label="entry-summary-keyword" href="/q/Build">Build</a>ing an <a data-gtm-click-label="entry-summary-keyword" href="/q/API">API</a> Back End w<a data-gtm-click-label="entry-summary-keyword" href="/q/it">it</a>h Spring Boot」から、Spring Bootを使ったREST <a data-gtm-click-label="entry-summary-keyword" href="/q/API">API</a>構築の基礎を学んだ。この<a data-gtm-click-label="entry-summary-keyword" href="/q/%E6%9C%AC">本</a>では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...</p> </div> </div> <div class="centerarticle-reaction js-user-bookmark-id-container" id="bookmark-288075528"> <div class="centerarticle-reaction-comment js-user-bookmark-comment " data-url="https://www.infoq.com/jp/minibooks/domain-driven-design-quickly" data-user-name="shunt_i"> <a href="/shunt_i/" data-gtm-click-label="user-reaction-usericon" class="centerarticle-reaction-thumb"> <img src="https://cdn.profile-image.st-hatena.com/users/shunt_i/profile.png" alt="shunt_i" title="shunt_i" class="centerarticle-reaction-image"> </a> <div class="centerarticle-reaction-main"> <span class="centerarticle-reaction-username"><a href="https://b.hatena.ne.jp/shunt_i/20181116#bookmark-288075528" class="js-anchor-path" data-gtm-click-label="user-reaction-username">shunt_i</a></span> <span class="centerarticle-reaction-timestamp">2018/11/16</span> <span class="js-private-icon status is-hidden"><img src="/images/v4/public/userpage/icon-private.svg" alt="非公開" width="10px" height="10px"></span> <div class="centerarticle-reaction-main-comment-tags"> <span class="js-comment">“「Domain Driven Design(ドメイン駆動設計) Quickly 」は、短くすばやく読める要約と、DDDの原則を紹介します。”</span> <ul class="centerarticle-reaction-tags js-tag-text"> <li><a href="/shunt_i/DDD/" data-gtm-click-label="user-reaction-tag">DDD</a></li> <li><a href="/shunt_i/%E9%96%8B%E7%99%BA/" data-gtm-click-label="user-reaction-tag">開発</a></li> </ul> </div> <div class="centerarticle-reaction-foot"> <div class="centerarticle-reaction-meta"> <span class="comment-permalink js-comment-permalink"> <a href="/entry/288075528/comment/shunt_i" data-gtm-click-label="user-reaction-permalink" rel="">リンク</a> </span> <span class="list-star-container js-list-star-container"></span> <span class="twitter-click js-short-url-clicks"></span> </div> <ul class="centerarticle-reaction-menu"> <li class="js-add-star-container add-star-container"></li> </ul> </div> </div> </div> </div> <ul class="centerarticle-reaction-following js-user-following-bookmarks-icon"> </ul> <div class="js-user-following-bookmarks-detail is-hidden"> </div> </li> <li> <div class="centerarticle-pager"> <span class="centerarticle-waiting js-read-more-waiting is-hidden"><img src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/common/loading@2x.gif" alt="残りのブックマークを読み込んでいます" width="16" height="16" /></span> <span>1</span> </div> </li> </ul> </div> </div> <script type="text/javascript"> // ---------------- dfp section ---------------- var valve = valve || []; valve.push(function(v) { v.defineDFPSlot({ unit: '/4374287/b_pc_o_18_3025_0_no', sizes: [[300,250]], slotId: 'user-sidebar-ad-top' }); v.defineDFPSlot({ unit: '/4374287/b_pc_o_19_3060_0_no', sizes: [[300,600],[300,250]], slotId: 'user-sidebar-ad-bottom' }); v.sealDFPSlots(); }); </script> <script> var valve = window.valve || []; valve.push(function(v) { var pageKeyValues = {}; if (document.cookie.split(';').some(function(item) { return item.indexOf('202011_guest_status=register_incomplete') >= 0})) { pageKeyValues.bookmark_status = 'register_incomplete'; } v.config({ pageKeyValues: pageKeyValues, content: { result: "ng" }, service: 'bookmark' }); }); </script> <script src="https://cdn.pool.st-hatena.com/valve/valve.js" async></script> <div class="right-container"> <div id="user-sidebar-ad-top" class="centerarticle-aside-ad"></div> <section class="centerarticle-aside-section"> <div class="centerarticle-aside-info"> <h3 class="centerarticle-aside-info-title">お知らせ</h3> <ul class="centerarticle-aside-info-list"> <li class="centerarticle-aside-info-item"> <a href="https://bookmark.hatenastaff.com/entry/2025/03/18/115302?utm_source=user_page_side_column&amp;utm_medium=official_announcement&amp;utm_campaign=2025%2F03%2F18%2F115302" target="_blank"> <p class="centerarticle-aside-info-category">ランキング</p> <h4 class="centerarticle-aside-info-item-title">今週のはてなブックマーク数ランキング(2025年3月第3週)</h4> <time class="centerarticle-aside-info-item-time">2025/03/18</time> </a> </li> <li class="centerarticle-aside-info-item"> <a href="https://bookmark.hatenastaff.com/entry/2025/03/11/113220?utm_source=user_page_side_column&amp;utm_medium=official_announcement&amp;utm_campaign=2025%2F03%2F11%2F113220" target="_blank"> <p class="centerarticle-aside-info-category">ランキング</p> <h4 class="centerarticle-aside-info-item-title">今週のはてなブックマーク数ランキング(2025年3月第2週)</h4> <time class="centerarticle-aside-info-item-time">2025/03/11</time> </a> </li> <li class="centerarticle-aside-info-item"> <a href="https://bookmark.hatenastaff.com/entry/2025/03/07/120023?utm_source=user_page_side_column&amp;utm_medium=official_announcement&amp;utm_campaign=2025%2F03%2F07%2F120023" target="_blank"> <p class="centerarticle-aside-info-category">ランキング</p> <h4 class="centerarticle-aside-info-item-title">月間はてなブックマーク数ランキング(2025年2月)</h4> <time class="centerarticle-aside-info-item-time">2025/03/07</time> </a> </li> </ul> <div class="enterarticle-aside-info-readmore"> <a href="https://bookmark.hatenastaff.com/?utm_source=user_page_side_column&utm_medium=official_announcement&utm_campaign=readmore" class="enterarticle-aside-info-readmore-button" target="_blank">もっと読む</a> </div> </div> </section> <section class="centerarticle-aside-section"> <h3 class="centerarticle-aside-title">公式Twitter</h3> <ul class="centerarticle-aside-twitter"> <li><a href="https://twitter.com/HatenaBookmark" target="_blank" rel="noopener" data-gtm-click-label="user-officialTwitter-name">@HatenaBookmark</a><p>リリース、障害情報などのサービスのお知らせ</p></li> <li><a href="https://twitter.com/hatebu" target="_blank" rel="noopener" data-gtm-click-label="user-hotentryTwitter-name">@hatebu</a><p>最新の人気エントリーの配信</p></li> </ul> </section> <div id="user-sidebar-ad-bottom" class="centerarticle-aside-ad"></div> </div> </div> </div> <div class="progress-modal is-hidden js-progress-modal"> <div class="progress-modal-spiner"></div> <div class="progress-modal-message"> <p class="progress-modal-message-text js-progress-message">処理を実行中です</p> <button class="progress-modal-cancel js-cancel-button">中止</button> </div> </div> <div class="message-modal js-message-modal is-hidden auto-hide"> <div class="message-modal-message"> <p class="message-modal-message-text js-message-modal-message-text"></p> <button class="message-modal-btn js-message-modal-close-button">閉じる</button> </div> </div> <div id="keyboard-shortcut-help" class="shortcut-help is-hidden"> <h3 class="shortcut-help-title">キーボードショートカット一覧</h3> <p><span class="shortcut-help-key">j</span>次のブックマーク</p> <p><span class="shortcut-help-key">k</span>前のブックマーク</p> <p><span class="shortcut-help-key">l</span>あとで読む</p> <p><span class="shortcut-help-key">e</span>コメント一覧を開く</p> <p><span class="shortcut-help-key">o</span>ページを開く</p> <button tyle="button" class="shortcut-help-close js-close-button">✕</button> </div> <div class="footer"> <div class="footer-inner"> <div class="footer-inner-group footer-bookmark"> <h2 class="footer-title"><a href="/" data-gtm-label="footer-btop">はてなブックマーク</a></h2> <div class="footer-list-wrapper"> <ul class="footer-list footer-list--pc"> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/all" class="hotentry js-keyboard-openable" data-gtm-label="footerCategories-hotentry">総合</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/general" class="general js-keyboard-openable" data-gtm-label="footerCategories-general">一般</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/social" class="cat-social js-keyboard-openable" data-gtm-label="footerCategories-social">世の中</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/economics" class="cat-economics js-keyboard-openable" data-gtm-label="footerCategories-economics">政治と経済</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/life" class="cat-life js-keyboard-openable" data-gtm-label="footerCategories-life">暮らし</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/knowledge" class="cat-knowledge js-keyboard-openable" data-gtm-label="footerCategories-knowledge">学び</a></li> </ul> <ul class="footer-list footer-list--pc"> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/it" class="cat-it js-keyboard-openable" data-gtm-label="footerCategories-it">テクノロジー</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/entertainment" class="cat-entertainment js-keyboard-openable" data-gtm-label="footerCategories-entertainment">エンタメ</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/game" class="cat-game js-keyboard-openable" data-gtm-label="footerCategories-game">アニメとゲーム</a></li> <li class="footer-list-item js-keyboard-selectable-item"><a href="/hotentry/fun" class="cat-fun js-keyboard-openable" data-gtm-label="footerCategories-fun">おもしろ</a></li> </ul> <ul class="footer-list"> <li class="footer-list-item"><a href="/guide/tools">アプリ・拡張機能</a></li> <li class="footer-list-item"><a href="https://bookmark.hatenastaff.com/">開発ブログ</a></li> <li class="footer-list-item"><a href="/help/">ヘルプ</a></li> <li class="footer-list-item"><a href="https://hatena.zendesk.com/hc/ja/categories/900000153166">お問い合わせ</a></li> <li class="footer-list-item footer-list-item--sp"><a href="/guide/guideline">ガイドライン</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/rule">利用規約</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/privacypolicy-ja">プライバシーポリシー</a></li> <li class="footer-list-item footer-list-item--sp"><a href="https://policies.hatena.ne.jp/cookie-policy">利用者情報の外部送信について</a></li> </ul> <ul class="footer-list footer-list--pc"> <li class="footer-list-item footer-list-item--pc"><a href="/guide/guideline">ガイドライン</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/rule">利用規約</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/privacypolicy-ja">プライバシーポリシー</a></li> <li class="footer-list-item footer-list-item--pc"><a href="https://policies.hatena.ne.jp/cookie-policy">利用者情報の外部送信について</a></li> </ul> </div> </div> <div class="footer-inner-group footer-bookmark-sns"> <h2 class="footer-title">公式Twitter</h2> <div class="footer-bookmark-list"> <ul class="footer-list"> <li class="footer-list-item"><a href="https://twitter.com/HatenaBookmark" target="_blank" rel="noopener" data-gtm-click-label="footer-officialTwitter-name">公式アカウント</a></li> <li class="footer-list-item"><a href="https://twitter.com/hatebu" target="_blank" rel="noopener" data-gtm-click-label="footer-hotentryTwitter-name">ホットエントリー</a></li> </ul> </div> </div> <div class="footer-inner-group footer-hatena"> <h2 class="footer-title">はてなのサービス</h2> <ul class="footer-list"> <li class="footer-list-item"><a href="https://hatenablog.com/" data-gtm-label="footerServices-blog">はてなブログ</a></li> <li class="footer-list-item"><a href="https://hatenablog.com/guide/pro?plus_via=hatenabookmark_footer&utm_source=hatenabookmark&utm_medium=referral&utm_campaign=hatenabookmark_to_hatenablog_pro&utm_content=hatenabookmark_footer" data-gtm-label="footerServices-blog-pro">はてなブログPro</a></li> <li class="footer-list-item"><a href="https://q.hatena.ne.jp/" data-gtm-label="footerServices-question">人力検索はてな</a></li> <li class="footer-list-item"><a href="http://d.hatena.ne.jp/" data-gtm-label="footerServices-keyword">はてなブログ タグ</a></li> <li class="footer-list-item"><a href="http://hatenanews.com/" data-gtm-label="footerServices-hatenanews">はてなニュース</a></li> <li class="footer-list-item"><a href="https://soredoko.jp/" data-gtm-label="footerServices-soredoko">ソレドコ</a></li> </ul> </div> </div> <div class="footer-bottom"> <div class="footer-app"> <ul> <li class="footer-list-item"><a href="https://apps.apple.com/jp/app/hatenabukkumaku/id354976659?mt=8" target="_blank" rel="noopener" data-gtm-click-label="footer-app-ios"><img src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/common/dl-button/appstore@2x.png" alt="App Storeからダウンロード"></a></li> <li class="footer-list-item"><a href="https://play.google.com/store/apps/details?id=com.hatena.android.bookmark&amp;referrer=utm_source%3Dbookmark_sp%26utm_campaign%3Dbookmark_sp_user&hl=ja" target="_blank" rel="noopener" data-gtm-click-label="footer-app-android"><img src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/images/v4/public/common/dl-button/googleplay@2x.png" alt="Google Playで手に入れよう"></a></li> </ul> </div> <div class="copyright">Copyright &copy; 2005-2025 <a href="http://www.hatena.ne.jp/">Hatena</a>. All Rights Reserved.</div> </div> </div> <div class="modal-overlay"></div> <script type="text/javascript" src="https://b.st-hatena.com/21bb37de101e3d895eac61554a1ca07012b63961/js/v4/bookmark.star.js" async></script> <div class="js-head-notify is-hidden">設定を変更しました<span class="js-head-notify-close-button">x</span></div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10