You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
三人称視点のゲームでは、エイム時にプレイヤーキャラの表示位置が横にズレることが多い。『The Last of Us Part II』などさまざまなゲームにおいて、このズレによって「弓」を射る際に生じる違和感や遊びにくさをなくすための工夫がほどこされているという。 三人称視点のゲームの弓にまつわる工夫が明かされるきっかけになったのは、開発者のWalaberことTimothy FitzRandolph氏の投稿だ。同氏はゼリー状の車が主役の2Dアクション『JellyCar』シリーズを手がける人物。同氏は7月16日、『ゼルダの伝説 ティアーズ オブ ザ キングダム』におけるカメラ視点について独自に分析し、ツイートにて紹介した。同氏いわく、『ゼルダの伝説 ティアーズ オブ ザ キングダム』では弓でエイムする際に特徴的なカメラ視点が採用されているそうだ。 Did a quick TOTK camera
Developers Summit(デブサミ) 9-B-9 02/09 17:45 ~ 18:25 「満を持して始めるRust」kenkoooo RustはC++の代替となることが期待されていることから、低レイヤ向け言語という印象を持っている方も多いかもしれません。しかし、Rust 1.0のリリースから7年ほど経ち、言語そのものだけでなく周辺のライブラリやツールも充実し、普段遣いのプログラミング言語として快適に開発できる環境が整っています。 本セッションでは、今日からRustで開発をスタートすることを目指し、Rustそのものの紹介だけでなく、実際の開発におけるコードの書き方や、estieでの導入事例をご紹介します。
この記事はNuco Advent Calendar 2022の14日目の記事です。 VSCodeに必須の機能20個を紹介していきます。 インストール数と星の数は記事作成時点(2022年11月時点)のものです。 Japanese Language Pack for Visual Studio Code vscode-icons Code Spell Checker zenkaku Path Autocomplete Prettier - Code formatter indent-rainbow GitLens Git History HTML CSS Support Output Colorizer TODO Highlight vscode-random Atom One Dark Theme Trailing Spaces REST Client Live Server Jupyter
この記事は、Merpay Advent Calendar 2022 の21日目の記事です。 こんにちは。メルペイBackendエンジニアのfivestar(@fivestr)です。 本記事では「SOLID原則」と呼ばれる設計原則に沿って実際に行ったリファクタリングについて、メルペイの「あと払い」サービスの開発現場事情を踏まえながらご紹介していきます。 あと払いの歴史とコード負債 私が所属するCredit Designチームではメルペイの「あと払い」や「メルペイスマートマネー」といった与信サービスの開発を行っています。中でも「あと払い」はメルカリが2017年にリリースした「メルカリ月イチ払い」を前身とする歴史の長いプロダクトであり、単純な機能追加だけでなく、設計上大掛かりな変更を伴う修正を繰り返しながら今日まで成長してきました。 例えば、あと払いをメルカードの決済・清算のバックエンドとして統
当初はちょっとしたSOLID批判のつもりが、「藪を突ついて蛇を出して」しまったのですが、物事はそこから具体的で目に見えるものへと発展しました。仮に、近頃はSOLID原則が役に立たなくなっているのだとしたら、何に置き換えればよいのでしょう? あらゆるソフトウェアに通用する原則はあるのでしょうか? そもそも「原則」とは何を意味するのでしょう? 私は「仕事がたのしくなるソフトウェアならではの特性や性質がある」ということを確信しています。コードでそのような質が高まれば高まるほど、仕事もどんどんたのしくなります。しかし、何事もトレードオフですから、自分の置かれている状況をつねに考慮する必要があります。 そうした特性はたくさん存在しており、互いに重なりや関連がありますし、説明の仕方もさまざまです。ここでは私がコードで気にかけている要素を強く支えていると思える5つを選びました。選ぶ数はこれぐらいが丁度良
こんにちは、Sansanプロダクト開発部の清水です。 ある程度のアプリケーションの大きさだと当たり前に使われる事が多い「レイヤードアーキテクチャ」の自分が考える設計のポイントや、実際に運用する際のポイントについて書いてみようかと思います。 基本的な話なので「今更かよ」って感じがしますが、実際に設計、運用する際には様々な考慮事項のあるものだと思うので、知ってる人にとっても復習にでもお役に立てればと思います。 そもそもレイヤードアーキテクチャって何? 概要 一言でいうと、アプリケーションを作る際にそれを構成する部品を、それぞれ責務が定義された論理的なグループにまとめて整理し、それぞれのグループ間のやり取りの仕方を決めておこうという事です。 このグループ間のやりとりにおいて、一方向かつ隣接するグループとしかやりとりを行えないようにする事が多く、層状になるのでレイヤードアーキテクチャと呼ばれます。
本稿の目的 Rustに存在しない「クラス」をRustの既存機能の組み合わせとして表現することで、一般的なOOP言語とRustのデータ表現に対する考え方の違いと、各概念がどのように対応しているかを理解しやすくすることが主な目的です。 主な想定言語 C++, Java, JavaScript, Rubyのクラスを主に想定しています。 方針 サブタイピング Rustにはごく限定的なサブタイピングしかないため、クラスのサブタイピングに相当する変換は明示的に .as_ref() / .as_mut() として表現します。 Deref / DerefMut を使うことで、このような振る舞いを部分的に再現できる場合もあります。ただし、この用途でDeref / DerefMutを使うのは推奨されていません。 カプセル化 一般的なOOP言語では継承関係に基づいたアクセス制御 (protectedなど) が行
◆ 内容 競技プログラミングで使える C++ の主要な標準機能のサンプル付き解説を執筆しています。C++ のバージョンは AtCoder の gcc 12.2 に準拠した C++17 / 20 / 23 です。競技プログラミング固有のハックやスタイル(<bits/stdc++.h>, 大きな配列、using namespace std 等)の使用を避けているため、一般的な C++ ソフトウェア開発でも使える、また C++ 標準ライブラリの機能 (std:: から始まる) を意識したコーディングの練習ができます。 ◆ 対象読者 ・競プロ上達のために C++ 標準ライブラリを一通り学びたい方 ・コンテストで参照できる C++ ドキュメントを探している方 ・現時点ではとくに APG4b や市販入門書で C++ を学んだ人にとって有益な内容から書き始めています。将来的にはさらに幅広い内容を扱う計画
初めに きっかけ 新人研修中にDDDとか、PoEAAとかの話が少しだけ出ました。 ただ、イマイチわからないとの声が多数。 理由 なぜなら予備知識がたくさん必要だからです。(ほんとに多い) これはわからなくて当然。 そこで 独断と偏見で、予備知識となる用語を解説します。 偏見多いので、より正確な情報は、書籍やWebで調べてね。 この辺を説明します UML クラス図/シーケンス図 デザインパータン GoF/PoEAA 階層化アーキテクチャ DDD本のサマリ 知らなきゃいけない知識が多くて面倒だね。 説明しないけど、オブジェクト指向やデータベースとかの知識も必要だよ。 説明前にDDD本のページを見てみよう!!! DDD本の最初のページ 「エリック・エヴァンスのドメイン駆動設計」より ??? よくわからないね さっきの図って何? 灰色の中心部分はソフトウェア設計のモデリングを表しています。 モデリ
オブジェクト指向プログラミング言語の経験がある方なら、SOLID の原則や、MVP、シングルトン、ファクトリ、オブザーバーなどのパターンについて聞いたことがあると思います。今回新しく公開する e ブックでは、これらの原則やパターンを使って皆さんが Unity プロジェクトでスケーラブルなゲームコードのアーキテクチャを構築するためのベストプラクティスを紹介しています。 皆さんが遭遇するソフトウェア設計の問題は、1000 人の開発者がかつて遭遇した問題です。その開発者たちに直接アドバイスを求めることはできませんが、デザインパターンを通じて、そうした開発者がどのような決断を下したのかを学ぶことができます。 Unity プロジェクトで一般的なゲームプログラミングにおけるデザインパターンを実装することで、クリーンで整理された読みやすいコードベースを効率的に構築および維持することができ、ゲームそのもの
Rustで簡単なツールを作ってみました。はじめてのTUI(モドキ)のツールです。 このバージョン0.1.0を作ったことで得られた知見をまとめてみます。 長文になってしまったので目次をうまく使ってください。(スマホ画面だと上部の目次をタップしないと表示されないので少し見づらいです。) 「いいね」、「ツイート」、「バッジを贈る」、「コメント」大歓迎です! 作成ツール紹介 みなさん、timeコマンドでコマンドの実行時間を計測しますよね?Rust製のhyperfineというツールがあり、複数回実行して平均を出したり、複数コマンドを比較できたり便利です。 これを見て私はメモリ使用量も計測できたらうれしいなと思ったんです。 そう、このmntimeコマンドを使えば、実行時間とメモリ使用量の平均値が分かるんです! そんなツールですがRustで作った経緯は、最近ターミナル環境を整えました。そのとき、モダンで
はじめに 良い本です。コードを書く人であればだれでもが気づきと学びがあるでしょう。 特に、コードの規模が大きく長期間にわたってさまざまな関係者が読むことになるプログラムを書く人にはぜひ読んでほしい本です。 gihyo.jp この本から学べるのは、どちらかというと「やり方」よりも「考え方」です。 書き方の具体例というよりは、良いコードを書くための考え方を、著者の知見に基づいて丁寧かつ具体的に説明しています。 別の言い方をすると、とにかくコードの具体例で「やり方」を覚えたい、という人には合わないかもしれません。 コードの具体例もたくさん登場しますが、それは「考え方」を説明するための例であって、コードの書き方のお手本やサンプルを集めた本ではありません。 サンプルコードはKotlinです。内容は、どちらかといえばユーザーインタフェースよりという印象です。しかし、Kotlinを知らなくてもほぼ問題な
JavaScript で頻出する undefined と null について語ります。 言語仕様上の違い JavaScript (ECMAScript) において、仕様上 undefined と null は当然ながら明確に区別されています。いくつか言語仕様上の扱いについて挙げてみます。 比較 厳密な比較演算子 === において undefined と null は区別されます。ゆるい比較演算子 == においては両者は区別されません(仕様 7.2.14)。 console.log(undefined === null); // false console.log(undefined == null); // true 他の falsy な値(false とみなされる値)との比較は、ゆるい比較演算子であっても区別されます(仕様 同上)。 console.log(undefined == fa
The content is based on Patterns.dev - a free online resource on design patterns and component patterns for building powerful web apps with vanilla JavaScript and React. The patterns covered on this website and in the workshop can guide you when facing a problem other developers have encountered many times before, but are not a blunt tool for jamming into every scenario. The goal is to raise aware
はじめに Twitter、Qiita、Zenn...といろんなところから情報収集するのはいいのですが、それぞれの有益な情報をそれぞれのサイトにお気に入りとして保存しているので、必要な情報を探すだけで一苦労です。 ここで一覧にしてまとめておくことにしました。 ただし、特定の言語に依存するような記事はあえて排除しています。 皆さんにとっても有益な情報があると、この記事を公開して良かったなと思います。 また、皆さんのオススメの記事がありましたら、コメントなどで教えてください。 コミュニケーション 質問 質問は恥ではないし役に立つ https://qiita.com/seki_uk/items/4001423b3cd3db0dada7 新卒からの質問をソシャゲっぽい仕組みにしたら捗った話 https://qiita.com/ysktsuna/items/fced3a9515c8f585ca50 会
TechFeed Conference 2022 Pick up Pythonに上級テクニックは要らない(そして正しい付き合い方)~TechFeed Conference 2022講演より 本記事は、2022年5月に開催されたTechFeed Conference 2022のセッション書き起こし記事「Pythonに上級テクニックは要らない(そして正しい付き合い方)(清原弘貴) — TechFeed Conference 2022講演より」を転載したものです。オリジナルはTechFeedをご覧ください。 Pythonに上級テクニックは要らない、そして正しい付き合い方ということで発表します、清原です。 株式会社ゼンプロダクツというのを最近立ち上げまして、日本語を書けばAIが文章を校正してくれる、Shodoというサービスを本気で作っています。Markdownでも書けて、はてなブログに配信で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く