タグ

プログラミングに関するJULYのブックマーク (194)

  • なぜファイルの末尾に改行を入れたほうが良いのか - Qiita

    はじめに ファイルの末尾には改行を入れたほうが良いのでしょうか。 「ファイル 末尾 改行 POSIX」等で調べると、規格の観点から改行を入れた方がいいという話が出てくるのですが、今回はgitの仕組みの観点からも改行を入れたほうが良いという話をします。 GitHub上での末尾改行の警告 例えば末尾に改行のないこんなファイルが有るとし、commitしてGitHubにpushすると以下のような表示になります export function hello(name: string) { return `Hello, ${name}!`; }

    なぜファイルの末尾に改行を入れたほうが良いのか - Qiita
    JULY
    JULY 2024/02/18
    プログラムコードで差分を見たときの話。だけど、これで認知負荷が、は大げさな気がするなぁ。逆にこれを負荷が高いと思う人にレビューされたくない。個人的には、ワンライナーで最後の空行がエラーの元になりがち。
  • 【訃報】プログラミング言語「Pascal」の開発者ニクラウス・ヴィルト氏が89歳で死去、ソフトウェア設計のパイオニアとして複数のプログラミング言語を考案し1984年にチューリング賞を受賞

    プログラミング言語「Pascal」の開発者であるニクラウス・ヴィルト氏が2024年1月1日に亡くなりました。89歳でした。 RIP: Software design pioneer Niklaus Wirth • The Register https://www.theregister.com/2024/01/04/niklaus_wirth_obituary/ We lost a titan of programming languages, programming methodology, software engineering and hardware design. Niklaus Wirth passed away on the first of January. We mourn a pioneer, colleague, mentor and friend.— Bertra

    【訃報】プログラミング言語「Pascal」の開発者ニクラウス・ヴィルト氏が89歳で死去、ソフトウェア設計のパイオニアとして複数のプログラミング言語を考案し1984年にチューリング賞を受賞
    JULY
    JULY 2024/01/05
    学生だった 35 年以上前、大学のプログラミング演習で自分が選択したプログラミング言語が Pascal。この選択が、化学系で入学したのに情報系での卒業につながり、その後の自分の人生を決めたと言ってよい。
  • 【日本人エンジニア必携】英語命名規則の決定版 - Qiita

    弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 はじめに 英語での適切な命名は、コードの可読性や保守性を向上させるために重要です。適切な命名規則を守ることがコードの理解や共有において不可欠です。 英語での命名規則を学び、適切な命名を行うことで、コードの読みやすさや保守性を向上させ、チーム全体でのコードの理解を促進する手助けとなります。 この記事では、日エンジニア英語での命名規則を理解し、適切な命名を行うための指針を提供します。 命名フローチャート 変数 関数 クラス 1. 変数 1-1. boolean 1-1-1. 存在するかどうかのフラグ 名詞 + exists

    【日本人エンジニア必携】英語命名規則の決定版 - Qiita
    JULY
    JULY 2023/12/27
    この記事自体はよくかけてると思うんだけど、問題は、名前を考えること自体を面倒と感じたり、苦手意識を持つ人が一定数存在すること。この人たちに、命名で立ち止まって考えてもらうにはどうしたら良いのか...
  • 設計書って何を書くもの? - Qiita

    はじめに みなさんは設計書を書く際に気を付けていることはありますか? 今回は私が最近設計書レビューをしてて感じる事について記載していこうと思います。 その設計書ただのメモ書きになってませんか? 何故この記事を書こうと思ったのかですが、 「その設計書はあなたがコーディングをするためだけのものじゃない」 ということをお伝えしたいためになります。 では、具体的に何を意識するのか。 コーダーが何をどのように実装したいのか理解しやすい内容とする。 設計を担当したものを自分が作るとは限りません。 保守・運用を行う際にどのような造りになっているのか分かりやすい内容とする。 開発を行ったシステムを同じ人がそのまま保守・運用を行っていくとは限りません。 要するに、他人が見るドキュメントだということを意識してほしいということになります。 次の項では具体的に何を書くべきかについて記載していきます。 (具体的にと

    設計書って何を書くもの? - Qiita
    JULY
    JULY 2023/12/20
    詳細設計書のところに書いてある「誰がコーディングしてもコーディング内容に大きな相違が起きないレベルで記載する」が現実的ではないから、ペアプログラミングとかアジャイル的な手法が存在するわけで...
  • 使いこなせていますか?Python 組み込み関数全71件 完全解説[2023 最新版] - Qiita

    この記事はNuco Advent Calendar 2023の5日目の記事です。 はじめに Pythonは、世界中で広く使われているプログラミング言語の一つです。Pythonの特徴の一つは、豊富な組み込み関数を持っていることです。 Pythonの組み込み関数は、2023年12月現在、全71件あります。しかし、それらを完璧に使いこなせている人はどれくらいいるでしょうか? この記事では、Pythonの組み込み関数全71件を、実際のコード例も踏まえて完全解説します。この記事を読めば、Pythonの組み込み関数について、一から十まで理解できるでしょう。 それでは、早速見ていきましょう。 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらま

    使いこなせていますか?Python 組み込み関数全71件 完全解説[2023 最新版] - Qiita
    JULY
    JULY 2023/12/07
    filter() の「知らないと冗長なコードを書いてしまう」という話で、「for文やif文を使って〜」は良いけど、内包表記も避けるべき、みたいな記述はどうかなぁ。イテラブルが欲しいときは filter() の方が、とは思うけど。
  • 「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態

    プログラミング言語「Python」の大規模イベント「PyCon APAC 2023」が2023年10月27日と28日の2日間にわたって開催された。1日目に行われた京都大学国際高等教育院の喜多一教授による基調講演を中心に、イベントの内容をリポートする。 PyCon APAC 2023は、1日目の基調講演「Why University Teachers Wrote a Python Textbook?」で幕を開けた。京都大学でPythonを使ったプログラミング教育を担当している喜多教授が、その実態について英語で講演した。 喜多教授は、主に大学1年生向けの教養教育の一環として、Pythonを使ったプログラミングコースを2018年に始めた。そのための教科書をつくり、2019年に公開した。誰でも無償でPDFをダウンロードできる。教科書は毎年改訂しているが、一般向けに公開したのは2019年版と2021

    「京大生でもx=x+1が分からない」、喜多教授が明かすPython教育の実態
    JULY
    JULY 2023/11/07
    その点、Pascal は代入の演算子が「:=」で、言語設計として正しいアプローチだと思う。まぁ、代入を書く機会が多いから、タイプ数が多くなるのを嫌う傾向に抗えないけど。
  • [研究室向け]なぜ君はソースコードのエラーを自分で解決できないのか? - Qiita

    1. Intro 1.1 タイトルの答え それは,最初から"How"(どうやってこの問題を解決すべきか)だけを考えているからです. 最初に問うべきなのは"Why"(なぜこの問題が起きたか)です. このタイトルの問いも,なぜ?から始まっています.「どうやって自分でエラーを解決するか」だけを考えていると,問題の根的な原因が分からないため,ずっと自分でエラーを解決することはできません. 1.2 Keyword 最初に自分に問いかけるべき言葉 〇 Why(なぜ?): なぜこの問題が起きたか ✕ How(どうやって?): どうやってこの問題を解決すべきか 1.3 背景 研究室では毎年,いつまでたっても自分でソースコードのエラーや出力の問題を解決できず,進捗が遅かったり開発をあきらめてしまったりする人が発生する.記事では,なぜ自分でエラー・問題を解決できないのか?を明確にする. <注意書き> この

    [研究室向け]なぜ君はソースコードのエラーを自分で解決できないのか? - Qiita
    JULY
    JULY 2023/10/08
    研究室と開発の現場で、違いがあるかもしれないけど、そもそも、日本語以外の文字を読まないやつ多すぎ、と思う。機械翻訳すらしようとせず、日本語じゃない時点で諦める人を、IT 土建の底辺にいるとよく見かける。
  • Pythonについて思うこと | 雑記帳

    みなさん、Pythonは好きですか? この記事では、私がPythonという言語とそのエコシステムについて思うところを書いていきます。全体を通したストーリーみたいなのはなくて、トピックごとに書いています。 私のPython経験は3年弱です。Pythonについてまだまだ新米だという自覚はありますが、そこは有り余る才能でカバーしてこの記事を書いています。 静的型 Pythonには静的型がありません。型ヒントはありますが、インタープリターにとっては飾りにすぎません。 mypyとかの型チェッカーはありますが、「それさえあれば万事ハッピー」なものではなく、既存のコードを適宜書き換えないと型チェッカーでまともな結果を得るのは難しそうです。型検査を念頭に書かれていない(型ヒント付きの)コードをそのままmypyにかけても大量のエラー・警告が出てくるでしょう(ちなみに、型ヒントなしの関数はmypyのデフォルト

    JULY
    JULY 2023/05/24
    いきなり静的型の話が出てきて萎えた。それが必要なソフトウェアに Python を使うべきではないと思うし、それが無くても済むような用途で便利に Python を使うだけ。どうして単一言語ですべてのプログラミングを語る?
  • Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita

    初めに 記事は実務上で速度的優位性を得るために内包表記を使うことが合理的かどうか検証したものです。 文中のコードは読者層を広くするために型ヒントを省いています。 更新履歴 詳細 追記 (2023/05/24) 計測環境はPython3.12.0a6です。 修正 (2023/05/24) 記事中のバイトコードがPython3.7.16のものだったのでPython3.12.0a6のものに差し替えました。 修正 (2023/05/27) 「list(generator) 使えよ」とのご指摘があったので 単純な例の内包表記を[i for i in range(ELEMENTS)]からlist(range(ELEMENTS))に修正しました。 ご指摘ありがとうございます。 追記 (2023/05/28) Twitterでの反応に対しての追記を行いました。

    Python 内包表記の限界: 複雑な処理と実行速度の関係 - Qiita
    JULY
    JULY 2023/05/23
    内包表記をパフォマンス目的で書くことは無いなぁ。基本、「ロジックとして重要ではないデータ抽出、変換処理」が行数とインデントを使い、本来のロジックの可読性の邪魔となるのを避けるために使う。
  • 知らないと恥ずかしいコードレビューで指摘されがちなポイント14選 - Qiita

    この記事はNuco Advent Calendar 2022の13日目の記事です はじめに 私は情報系の学部に通う大学4年生です。大学でプログラミングを学んだことをきっかけに、プログラミングを使用した実際の業務に取り組んでみたいと思いました。そして、株式会社Nucoさんで機会をいただき、現在インターン生として実務に参加させていただいています。 自分のように、プログラミングを学び、「実務の経験が積みたい」「インターンに参加してみたい」という方はたくさんいらっしゃるかと思います。この記事では自分が実際にインターン生として実務に参加し、コードレビューで指摘されたポイントを紹介します。 難易度、頻出度の目安を★の数で示しています。 ・難易度・・・それぞれの項目で指摘されないようなコードを書く難しさ。 ・頻出度・・・それぞれの項目のミスの起きやすさ。 難易度(低→高)、頻出度(高→低)の順番で紹介し

    知らないと恥ずかしいコードレビューで指摘されがちなポイント14選 - Qiita
    JULY
    JULY 2022/12/15
    例外処理の話がちょっと微妙。例のように except で print して終わっちゃうと、例外を握りつぶすことになる。握り潰してしまうぐらいなら、異常終了した方が、問題に早く気付ける。
  • エンジニアのコピペだめなの??嘘でしょ? - Qiita

    エンジニアのコピペが駄目だという記事を見かけました。 あえてリンクは張りませんが、僕には全く賛同できませんが、イイねもついてます。 皆さんはどうお考えですか?少し不思議に感じましたので誤解が広がりたくないと思って記事を書きました。 コピペでスキルは向上しなくない コピペして出来た気になってしまい内容を理解しないので、0から書いた方が良いと記述がありましたが、今どき、0からコーディングするのって何時代って感じです。昭和の根性にしか思えません。0からタイピングするのと理解するのは全くの別軸の話です。 そもそもコピペするという事は、そのコードを修正するからです。修正しないのであれば、ライブラリとして利用すれば良いです。修正するという事は理解した上で修正します。逆に理解しないと修正出来ないです。 更にキレイなソースコードをコピペする事でキレイなソースコードの書き方を覚えれるし、保守性があがって生産

    エンジニアのコピペだめなの??嘘でしょ? - Qiita
    JULY
    JULY 2022/11/30
    「そもそもコピペするという事は、そのコードを修正するからです。(中略)修正するという事は理解した上で修正します。逆に理解しないと修正出来ないです。」この仮定が楽観的すぎる。コピペだけの人はいる。
  • ファイル書き込みをするプログラムで気をつけた方がよいこと | IIJ Engineers Blog

    この記事について この記事では、ファイルに書き込みを行うプログラムを実装する時の注意点について説明します。 ファイル書き込みは、プログラミングにおいて比較的よく利用される機能でありながら、実装時に注意していないと、システムクラッシュ(意図しない電源の喪失や OS のクラッシュ等)後にファイル上のデータが整合性を失う可能性、平たく言えば、データが破損する場合があります。 今回の主な内容はトランザクションに関連する事柄で、ご存知の方からすると当たり前と思われることだと思われますが、執筆者がプログラミングの勉強を始めて以降知らない期間が長かったことと、他にもご存知ない方がある程度いらっしゃるのではないかと思ったため、このように記事にさせていただきました。 また、ここで説明する注意点は、クラッシュ後にデータの整合性が重要でない場合は、気を付ける必要がないものであることを先に書いておきます。 先にこ

    ファイル書き込みをするプログラムで気をつけた方がよいこと | IIJ Engineers Blog
    JULY
    JULY 2022/07/07
    でも、現実問題として、方法2に書かれているような動きは、今どきのファイルシステムではやっているので、ユーザランドで気にするのは、それこそ DBMS を作るときぐらいじゃないかなぁ。
  • UNIXを教える仕事をした - はてなの鴨澤

    知り合いに頼まれて、ちょっとUNIXの初歩を教える授業をした。 ちょっとといっても結構がっつりで、入ってきたばかりの、だいたいは家にパソコンがないという素人の学生に、2ヶ月間・23日・2コマずつで基を教え、ちょっとしたツールをシェルスクリプトで作れるような、いわば普通のUNIX使いにしてくれ、という要望である。 一応の教科書は指定されたのだが、自分で買って読んでみたところ、あまり良くなかったので使わなかった。「これはリファレンスに使ってください」ということにした。 代わりに使ったのは、自分が真に優れていると思う、Kernighan & Pikeの『UNIXプログラミング環境』である。1984年初版、対象はVersion7 UNIXと非常に古いので、内容は全部作り直しだ。全9章あるが、Cでツールを作り出す6章以降はいらないし(9章なんてtroffの詳細だぜ)、5章で作るツールはかなり古臭

    UNIXを教える仕事をした - はてなの鴨澤
    JULY
    JULY 2022/07/01
    awk の問題で、tr でスペースを改行にしてから処理した生徒は、なかなか面白い。ある意味、UNIX らしい処理の仕方だと思う。
  • 「漏れのある抽象化の法則」要約 - Qiita

    はじめに Joel Spolskyさんの記事「漏れのある抽象化の法則」を要約したのでシェアします。 結論 抽象化されたものは便利だけど、使う時は仕組みを知ってから使おう。 抽象化とは TCP. It is what computer scientists like to call an abstraction: a simplification of something much more complicated that is going on under the covers. →TCPは、コンピュータ科学者が「抽象化」と呼ぶもので、もっと複雑なことを単純化し、その下で行われています。 ざっくりいうと以下の意味かと思います。 中で行っている「複雑なこと」を、外からは単純な方法で使えるようにすること 外からは「複雑なこと」をどのように実現しているかは見えない 単純化されてるおかげで、

    「漏れのある抽象化の法則」要約 - Qiita
    JULY
    JULY 2022/06/13
    自分もこれは痛感している。プログラムを作る側が、言語や開発環境の中に安住していて、動作環境に全く興味がなく、インフラ側に何も説明できないケースをよく見かける。IT 土木の底辺では、DevOps は縁遠い。
  • プログラミング言語別の平均年収ランキング トップ10にPythonやJSなど入らず 1位は? パーソル調査

    プログラミング言語別の平均年収ランキング トップ10にPythonやJSなど入らず 1位は? パーソル調査 パーソルキャリアは6月6日、日におけるプログラミング言語別の平均年収ランキングを発表した。1位は「ABAP」で平均年収661万円。2位は「R」で656万円、同率3位は「Perl」と「VC・VC++」で630万円だった。同社が過去に調査した「ITエンジニアが学びたい言語ランキング」ではPythonJavaJavaScriptが上位だったが、これらはトップ10に入らなかった。 プログラミング言語別の平均年収ランキングでは、5位が「Delphi」で629万円、6位が「ASP」で628万円、7位が「Go」で627万円、8位が「PL/1」で618万円、9位が「Cocos2d-x」で607万円、10位が「C++」で605万円だった。調査結果は、パーソルキャリアが転職支援サービス「doda」

    プログラミング言語別の平均年収ランキング トップ10にPythonやJSなど入らず 1位は? パーソル調査
    JULY
    JULY 2022/06/07
    ABAP が典型的だけど、要はソフトウェアエンジニアに気前よく金を出す「パトロン」となる会社の有無に大きく左右されている。そういった会社と心中するつもりなら良いけど、生存戦略としてはあまり参考にならない。
  • Rustでブラウザを操作する「rust-headless-chrome」を試してみた | DevelopersIO

    こんにちは。MAD事業部のきんじょーです。 最近Rustの入門書を読んだので、何かに使ってみようと模索していました。 その中で、Rustでヘッドレスブラウザを動かすライブラリを検証したのでこの記事にまとめます。 ヘッドレスブラウザとは ヘッドレスブラウザはGUIを持たないWebブラウザです。 一般的なブラウザと同じく、HTMLを解析しJavaScriptを実行できますが、GUIを持たないため、CLIやプログラム上から操作を行います。 主に以下のような用途で用いられます。 WebアプリケーションのE2Eテストの自動化 Webページのスクリーンショット取得 JavaScriptの自動テスト Webページで行うワークフロー処理の自動化 Webページのクローリング 古くはPhantomJSやCasperJSなどを用いていましたが、現在では主要なブラウザもネイティブでヘッドレスモードを搭載しています

    Rustでブラウザを操作する「rust-headless-chrome」を試してみた | DevelopersIO
    JULY
    JULY 2022/04/21
    Rust なんだから、そこは Firefox のヘッドレスモードで。
  • あなたは本当に「プログラミングができない、向いてない」のか? 〜うるう年判定プログラムで考える〜 - Qiita

    この記事の目的 「プログラミング学習につまずいている」 「基礎的な式や文は覚えたけど、応用できずに悩んでいる」 そんな人達に、「自分がうまくいかない原因が何なのか」を考えるきっかけにしてほしいです。 特に、「プログラミングで何か問題を解く」的なことが苦手な人に、少しでも参考になればと思います。 「プログラミングができない」をもっと細かく切り分けてみる 「プログラミング難しい、向いてないかも...。」と思う前に、「自分が何につまずいているのか」を分析してみましょう。 実は、難しいのはプログラミングじゃない? プログラミング自体は、あくまでコンピュータに何かを実行させるための命令でしかありません。 なので、そのやりたい「何か」自体が難しい場合、自ずとそれをプログラミングするのも難しくなります。 ただ、目の前で取り組んでいるものが「プログラミング」なので、その状態を「プログラミングが難しい」と考

    あなたは本当に「プログラミングができない、向いてない」のか? 〜うるう年判定プログラムで考える〜 - Qiita
    JULY
    JULY 2022/04/20
    そういった論理的思考が苦手な人は、プログラミングに限らず、エンジニア全般に向いていないと思うなぁ。特に IT 業界は、技術の変遷が大きいから、論理的思考ができないと詰む。
  • JavaScript: 文字数を正確にカウントするには? - Qiita

    この投稿ではJavaScriptで文字数をできるだけ正確にカウントする方法について取り上げます。 文字数とは? 要件で「文字数を表示してほしい」「○文字以上はバリデーションエラーにしたい」と文字数を考慮しないとならないことがあります。 そもそも文字数とは何でしょうか。 たとえば、アルファベットの「A」は1文字と数えられそうです。 次の絵文字は、何文字になるでしょうか? この絵文字はiOSであれば14.5の環境では、UI上では上のように1文字のように表示されます。しかし、それ以前のバージョンでは、同じ文字列データでも😵💫のように2文字で表示されます。なお、この絵文字は3つのコードポイントU+1F635 U+200D U+1F4ABからなります。この絵文字の「文字数」はいったい何文字として扱ったらよいのでしょうか。 以上のように、ひとことで文字数と言ってもデータと見た目と環境の3つのややこ

    JavaScript: 文字数を正確にカウントするには? - Qiita
    JULY
    JULY 2022/04/12
    ゼロ幅接合子で合成された絵文字の文字数を、そもそも1と数えるべきか否か、ということも、シチュエーションによってはありそう。でもなぁ...
  • Nimを知ってほしい2022

    Nimを知ってほしいという記事があり、Nimを知らなかった人々向けに最初の紹介として大変な貢献をしてくださりました。 しかしまだNimを使ったプロダクトというのも少なく、競プロではチラホラ見かけるものの、人々の中にある意識としては「気になっています」という域を越えられていないのも事実です。 そこで今回は企業での意思決定をする人や、5年以上の経歴があるエンジニア向けに、Nimを書いてみようと感じてもらうことを目的に、先日私が登壇したみんなのPython勉強会#79 『Pythonistaに伝えたいNimの魅力』に加筆して投稿してみたいと思います。 Nimって何? 2008年から開発が始まった新しいプログラミング言語です。 「Pythonに型が付いて、Goみたいに高速に、バイナリになってOSの実行環境に依存しないで動いてくれる言語ないかな〜」という全プログラマーの夢を叶えてくれる言語です。 書

    Nimを知ってほしい2022
    JULY
    JULY 2022/04/04
    逆に、2008 年からスタートして、競合しそうな Rust に一気に抜かれたのは、なぜなんだろう。書かれている事を読む限りは素晴らしいように見えるけど、大きな採用実績が無い、以外に何か問題があるのだろうか?
  • Python 1本うどんコード - Qiita

    はじめに Pythonにはリスト内包表記という便利な記法があります。リスト内包表記の記法は以下のようになっています。 イテラブルオブジェクトとはlistやdictのようなイテレーションが可能なオブジェクトのことです。 変数名にはイテラブルオブジェクトの要素が1つずつ取り出され束縛されます。 式には定数や変数、x < y, i * 2といった演算の戻り値が該当します。 とても簡潔で便利なリスト内包表記ですが、実はチューリング完全であることが知られています。つまり、リスト内包表記では計算機によって原理上可能な処理をすべて行うことができるということです! このリスト内包表記がうどんの麺のように見えることから、 コードは1行 コードの先頭は[ コードの末尾は] 以上3つの制約を満たすコードを1うどんコードと命名し、AtCoderの問題をリスト内包表記をひたすらに悪用した1うどんコードで解いてみ

    Python 1本うどんコード - Qiita
    JULY
    JULY 2021/12/10
    内包表記がチューリング完全というのは知らなかった。筆者の言うとおり、だからといって、悪用してはいけないw。