絞り込み条件を変更する
検索条件を絞り込む
有料ブログの投稿方法はこちら

すべてのカテゴリ

16 件中 1 - 16 件表示
カバー画像

見やすく管理しやすいコーディングのコツ

見やすく管理しやすいコーディングのコツプログラムが小さい場合はあまり問題になりませんが、プログラムが複雑になって大きくなってくると、コーディングのやり方によっては、管理が大変になる場合が多くなります。この記事では、「見やすく」「管理しやすい」コーディングのコツを紹介します。誰がプログラムを読むか?最初にプログラムを書いた人以外が、プログラムを見る(読む)ことは、現実的にかなりあります。 一人で開発を行っていても、依頼されてプログラムの開発を行う場合、納品後の管理は依頼者側で行う場合が多くなります。また、会社などでは、最初にプログラムを書いた人が退職したり、別の仕事に就いたりして、その後の管理は別の人が行う場合もたくさんあります。また、プログラムを書いた本人でも、時間が経つと細かい部分は忘れてしまう場合が多く、開発してしばらくして何かの問題が出て、プログラムのコードを見直す場合には意外に時間がかかってしまうものです。こうした事態に備えるため、業務でプログラムを開発する場合はドキュメント(設計仕様書)を作成するのが普通です。 しかし、ドキュメントがあっても、プログラムのソースコードはいずれにしても読む必要があります。 つまり、ソースコードが見やすく、管理しやすいよう書いてあるかどうかで、そうした管理のために費やす時間は大きく変わってきます。ハードコーディングの問題管理が面倒なプログラムに「ハードコーディング」が多いプログラムがあります。 「ハードコーディング」とは、プログラムの中に「具体的な値」を直接書く書き方です。例えば、最近の投稿で紹介している、Vue と Firebase に
0
カバー画像

データーベースのデバッグツール <WinSQL>

 何種類かのデータベースを扱う技術者にとって、専用ツールを使用したクエリテストは避けられないものです。  私がストレスを感じるのは、データベースエンジンごとに、ユーザーインターフェースの使い勝手が全然違って、「ただクエリをテストしたいだけ」なのに、クエリに集中できないことです。 そこで私が愛用しているツールが「WinSQL」です。   www.synametrics.com/SynametricsWebApp/Download.do?ProgName=WinSQL これは様々な種類のデータベースに対して、一つの共通したインターフェースからクエリを発行することが出来るツールです。 これを使用すると、データベースにアクセスするプログラムを開発する、一般的な手順の中で(1) 画面設計/作成(2) DB接続※場合により、トランザクション処理を開始。(3) SELECTクエリでテーブルデータを読込み。(4) (3)項の結果に応じて、INSERT, UPDATE, DELETEなどのクエリを発行。(5) SELECTクエリで、データの不整合がないか確認。※場合により、トランザクション処理を終了。といった流れの (3)(4)項を 効率的に進めることができます。非常におすすめのツールです。
0
カバー画像

Javascript と Typescript

Javascript と TypescriptWeb 開発では、Javascript は欠かせませんが、最近では Typescript も注目されています。Typescript を勉強しておいた方が良いのか迷う場合も多いと思います。どちらが良いのかを考えてみました!Javascript は必須Web 開発をする場合、バックエンドは別にしてもフロントエンドの Web ブラウザで動作するプログラムは Javascript になります。したがって、フロントエンドに関わる開発では Javascript は必須のプログラミング言語という事になります。そうした、理由もあって Javascript を学習する人はたくさんいますが、最近では企業のある程度の規模の開発では Typescript が使われるケースも増えています。そうなってくると、Typescript を学習しておいても損はなさそうな状況になりつつあります。ところで、Web 開発者を目指してプログラミングを学習する人の場合はどうでしょうか?この連載で既に書いてきたように、「今必要な事に絞って学習する」ことで、学習を効率よく進めて短期間で成果を出すという考え方で言えば、Javascript でプログラミングを書ければ、Typescript はなくても良い事になります。そう考えると、Typescript を初心者が学習するのは後でも良いという事になりそうです。Typescript の正体とは?ところで、Typescript の正体をご存知ですか? 一言で言うならば、Typescript は Javascript をベースに、変数の型や初
0
カバー画像

面倒なCSS!?

面倒なCSS!?Web プログラミングには基本的に HTML/CSS/Javascript が必要です。この中でも意外に面倒なのが CSS です。この記事ではなぜ CSS が面倒なのか考えてみました。HTML と Javascript は意外にシンプルHTML と Javascript の方が、学習することは多いのはあきらかで。 しかし、HTML の場合は、記述が誤っていると目で見てわかりまし、間違いの箇所は比較的簡単に特定できます。Javascript の場合は、少し事情が変わってきます。 Javascript の問題は、大きく二つあります。* Javascript の記述上の誤り(文法のエラー)* プログラムの論理的な誤り(バグ) Javascript の記述上の誤りは、その箇所を実行した場合はエラーメッセージがコンソールに表示されるので間違いの場所の特定は簡単です。 プログラムの論理的な誤り(バグ)の場合は、場所の特定は少し難しくなります。しかし、デバッガーなどを使って、データの中身を見たりして工夫することで、バグを見つけることができます。いずれにしても、プログラミング言語でプログラミングをする場合、バグを見つけて修正するのはプログラミング開発の一部です。CSS は何が違う?CSS が特別というわけではありませんが、CSS の場合、問題の箇所を見つけるのが意外に難しいという事情があります。 HTML と同様に目に見えるという点では、想定通りに動作しない場合は、思ったような表示になりません。そいう点では簡単に問題が見つかりそうです。しかし、実際は表示が思うようにされないけれ
0
カバー画像

見えない物は難しい!

見えない物は難しい!Web プログラミングは大きく二つの部分に分かれます。一つは、UI の為のプログラム、もう一つはデータ処理のためのプログラムがあります。UI は目に見えるので、上達も早いのですが、データ処理は時間がかかります。2種類のプログラミングWeb プログラミングは、Web ブラウザ上の UI を担当する部分と、入力したデータなどを処理する部分に分かれます。UI の部分は、動作が目に見えやすいので何が起きているかもわかりやすいので、比較的習得もしやすく、デバッグも基本的には楽です。 加えて、React や Vue などのフレームワークも利用できますし、ある程度パターンも固定されているので参考にできるサンプルコードも多く初心者でも、コツを掴むのが簡単です。一方で、データ処理の方は、動作が見えにくく、アプリケーションによって扱うデータも異なるので UI に比べると難易度が高くなります。見えないと難しい理由は?見えないと難しい理由は、何が起きているか外側からはなかなかわからないからです。 わからないものは、何か問題が合った場合には、まずは何が起きているかを見極めないと対策が取れません。 いうならば、推理小説で言うところの密室殺人事件のようなもので、密室の中でないが起こっているのかを見つける必要があります。プログラミングの場合は、密室というわけではなく、中に入れば何が起きているのかを見ることができる点が違います。 これを助けてくれるのが、デバッガーです。デバッガはデータの様子、データがどのように変わって行くのかを覗く事ができるツールです。これを利用すると、見えないデータの動き
0
カバー画像

正しいバグの治し方!

正しいバグの治し方!プログラムには殆どの場合、「バグ」があるものです。余程規模の小さなプログラムを除けば、小さなバグはどうしても残ってしまう場合も多くなります。プログラムを作ったら、まずは動作確認やテスト(検証)をして、意図しない動作の修正を行います。この記事では、正しいバグの治し方について考えてみました。バグとは何か?プログラムで意図しない動作をする場合がありますが、これをバグと呼んでいます。少なくても検証をきちんとしていないプログラムには基本的にバグは存在する場合が殆どです。テストをしながらこうしたバグを修正する作業をデバッグと呼んでいますが、プログラム開発では重要な作業になります。ところで、バグを修正する際はどのように修正しますか?シンプルに言えば悪いところを見つけて、それを直すという作業になりますが、実は意外に簡単ではありません。バグの原因はいろいろ考えられますが、よくあるケースを例に挙げると:* 変数などの書き間違い* 処理の条件の間違い (プログラムの論理の間違い)* 想定外の条件の発生* タイミングに関連した不具合などがあります。バグの原因はこれ以外にもたくさんありますが、この辺りが良くあるバグの原因です。プログラムを書く人や書き方にもよりますが、書き間違いはよくあるミスです。最近は、プログラムを入力するエディタの機能が向上しているので、ある程度のミスはプログラムを入力する段階で気づく機会も増えているので比較的少なくなってきています。ところが、プログラムの論理的なミスは発見するのが少し難しくなります。 プログラムの書き方自体には問題がなくても、処理の条件や想定外の
0
カバー画像

エラーの原因特定

エラーの原因特定プログラムの実行中にエラーが発生した場合やプログラムに問題がある場合、その原因を特定する事が重要です。 一つのプログラムの場合には殆どの場合、そのプログラムの中に問題があると考えるのが一般的です。 しかし、Web サービスなどの場合は、フロントエンドとバックエンドで別々のプログラムを動かす場合も多いので原因の特定が難しくなる場合が殆どです。この記事では、Web サービスでの問題の見つけ方を簡単に紹介します。プログラムを取り巻く環境プログラムを作成して実行して問題が発生した場合、その原因の殆どはプログラムその物にある事が多くなります。 しかし、実際にプログラムが動く仕組みを考えると問題の発生は、そのプログラム事態以外にも要因があることがあります。例えば、ある PC 上で実行できるプログラムを作った場合でも、作成したプログラムは、実行している「システム」という観点から考えると極一部です。どういう事かというと、作成したプログラムを動かすために必要になる要素にはいろいろな物が含まれています。* 実行するコンピュータ(スマホや PC)* プログラムを実行する OS(オペレーティングシステム)* プログラムが利用しているライブラリや外部のモジュール* 作成したプログラム 実際にプログラムを実行するには、これらの要素が必要になるので、どの部分にも問題がある可能性があります。さらに、一般的な Web サービスのプログラムになるとさらに別の要素が増えるのはこれまで紹介してきた通りです。* Web サーバー(ホスティングをする、サーバーから、OS、HTTP のサービスなど)* ネッ
0
カバー画像

バグの少ないプログラムの作り方

バグの少ないプログラムの作り方プログラムが想定通りに動かない原因を「バグ」と呼んでいます。現状では、バグを完全になくすことは難しいとされています。対策としては十分なテストをして、可能な限りのバグを修正してからリリースすると言う方法が取られています。しかし、プログラムを書く人によって、プログラムに潜んでいるバグの数の差はかなり大きな開きがあるのも現実です。この記事では、バグの少ないプログラムを作成するコツを紹介しています。バグの分類一言に「バグ」といってもいろいろなタイプ(種類)のバグがあります。まずは、バグのことを理解するために大まかに分類していみます。コンパイルや実行時の文法エラーなどはここでは除外して考えます。そうすると、大まかに以下のようなバグを想定することができます。* 入力のミス* プログラムの論理的なミス* 想定外の動作 あたりがバグの大きな分類です。入力のミスは、例えばループのカウントで使っている変数、「i」が正しい変数であるのに、実際は「j」と入力されている場合です。あるいは、Python などのように変数を宣言しないで利用できるプログラミング言語の場合、本来「abc」と言う変数を使う場面で、「dbc」などと入力するような場合です。 いずれの場合も本来使うべき変数と別の変数を使うことになるので、殆どの場合は、プログラムは正しく動作しません。この種類のバグは、プログラムを入力する際に発生するバグです。プログラムを動かす前に注意深くチェックすれば見つけることは可能です。しかし、多くの場合、気づかずにプログラムを実行して運が良ければ見つかる種類のバグになります。最近は
0
カバー画像

Docker Compose を使ってみる!

Docker Compose を使ってみる!Docker の利用例として、Django で作成したアプリを docker 上で動かす際には、「Docker Compose」を利用しました。この記事では、Docker Compose について簡単にまとめてみました。Docker Composer はどんな時に必要か?最初に、知りたいのは「いつ」Docker Composer を使うかだと思います。 一言で言えば、複数のコンテナ(Container)を利用する場合に使います。例えば、Web サーバーのコンテナとデータベースのコンテナを別々に動かして一つのサービスやアプリケーシんを作る場合です。前回の Django の例では、データベースや、HTTP のリクエストを管理する NGINX や、Django のアプリケーションサーバーなどを利用するために利用しています。Docker Composer を利用する場合、その設定は「xxx.yml」という設定ファイルに記述します。 このファイルで、どのようにイメージを作成(build)して、利用する Docker コンテナをどのようにインターフェースして、どのようにサービスやアプリを起動するかをまとめて設定します。少し、規模の大きなサービスやアプリの場合、複数のコンテナを組み合わせて利用する場合が殆どなので、Docker Composer は、そうした少し複雑で大きなサービスやアプリを Docker で動かす場合に必要になってきます。Docker Compose の基本設定Docker Compose を利用する場合でも、Docker を使う
0
カバー画像

VBAのデバッグ方法

EXCEL、ACCESSなどで使うVBAですが、ネットでコードがあるのでよく転用させて有効活用してます。 でも、コードそのままだとうまく動かないことが多いです。そこで、VBデバッグの方法をご紹介します。 Visual Basicデバッグ方法 今回は、ACCESSで紹介します。 確認したいコードを見て、エラーがでる手前の左側をクリックするとデバッグで一時停止します。この状態でACCESSに戻って実行します。実行すると一時停止します。そこで、値も入ってくるので確認できます。 まとめ 簡単な操作でデバッグできますね。VB6全盛のころに、PC制御設計部の後輩に指導を受けた内容です。何事も真摯にお話をきくといいことありますね。部署が違うから関係ないってことはないと思います。
0
カバー画像

Django のテストやデバッグに便利なツールバー

Django のテストやデバッグに便利なツールバーDjango のフレームワーク自体に必要な基本機能が含まれていますが、利用すると便利な外部のモジュールもいろいろあります。その中でも便利なモジュールの一つがデバッグ用のツールバーです。この記事では、デバッグ用のツールバーの導入のやり方を紹介します。デバッグ用のツールバーのインストールこのモジュールは「django-debug-toolbar」と呼ばれるパッケージです。 Django のフレームワークに組み込みできるデバッグ用の「アプリ」です。利用する場合は、「pip」でインストールします$ pip3 install django-debug-toolbar django-debug-toolbar の基本設定Django のアプリの扱いなので、プロジェクトフォルダの「settings.py」の中の「INSTALLED_APPS」に登録します。INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'rest_framework',    'app',    'debug_toolbar'] さらに、「settings.py」の「MIDDLEWARE」にも追加します。MIDDLEWARE
0
カバー画像

Django の便利な外部モジュール  dj-database-url

Django の便利な外部モジュール  dj-database-urlDjango で利用できる便利なモジュールに「dj-database-url」があります。機能をちょっと見ただけだと余りメリットがないように見えますが、便利な外部モジュールです。特に、開発に「SQLite」を利用する場合は、インターネットに公開する際は別の SQL データベースに置き換えるケースが殆どです。こうした切り替えを上手く管理できるモジュールです。公開の際はデータベースを入れ替える場合が殆どです!前回も触れましたが、Django の開発時とインターネットに公開時では設定が違うのが普通です。 特にデータベースは、Web アプリや Web サービスの性能に影響する部分なので、公開時には MySQL や PostgreSQL など本格的な SQL データベースを使うのが普通です。 SQLite はデータベースと行っても一つのファイルにデータを保村する簡易的なデータベースなので、沢山の人が同時にアクセスするような使用は想定されていません。しかし、開発時は開発者以外のアクセスは基本的にないので、こうしたシンプルなデータベースで開発しても大きな問題ではありません。SQLite の場合、SQLiteBrowser など、データベースの中身をチェックできる便利なツールもあるので、開発時には便利です。先日紹介した、「django-configurations」で環境変数を使えばこの問題にも対処できますが、データベースの指定には、「dj-database-url」も便利です。dj-database-url を利用するには
0
カバー画像

40代塾講師の「ほぼ独学プログラミング日誌。」25

『プログラミングで切り開く、新しい未来♪』こんにちは!塾講師のdainarです。まもなく待ちに待った『黄金週間』G.W.がやって来ますが新型コロナウィルス(さらに進化している💧)の感染拡大が止まりませんね。今年のG.W.も何も”思い出づくり”ができずに過ぎていくのだろうか・・・「いやいや贅沢な悩みやな」( ̄◇ ̄;)さて、気を取り直して今回も前回の”プログラミングで横断幕をつくる”の続きです。目次 1. 大きく表示する2. デバッグする3. forループを使って大きく表示する前回の復習。下の画像のように「はじめてのPDF」という文字列をファイルにしました。今回は1ページに1文字ずつ大きく表示するプログラムを考えて、横断幕を作ります。まずは実際のプログラムを見てみましょう!ここでは簡単に「お」という文字をA4サイズいっぱいに表示してみます。(プログラムの実行からファイルの開き方までは大丈夫ですね?)A4サイズは、横幅が210mm、高さが297mmという規格になっています。なのでフォントのサイズを横幅と同じ210mmに指定すると、文字が横幅いっぱいの大きさになるはずですが・・・お!?実際はこのようにはみ出してしまいました💦 なぜ???デバッグする参考図書に書いてあるプログラムとの記述ミスがないか”目を皿のようにして”見比べます。特に今回修正をした箇所を中心にmoji = ” お “フォントの大きさは用紙横幅と同じ210mmとするpdf.setFont(“HeiseiKakuGo-W5”, 210 * unit.mm) —— フォントの大きさを210mmにする高さh = (297 –
0
カバー画像

Web アプリ開発の「見えない時間」とは?

Web アプリ開発の「見えない時間」とは?仕事として、Web アプリを開発する場合、納期は重要です。 納期までに仕事が終わらないと発注元にも迷惑をかけてしまうので、予定をしっかり立てて納期に間に合うように開発を進める事が求められます。仕事を受ける場合、基本的には「自分に出来ると思う」仕事を受けるのが普通なので、大まかにはどれくらいでプログラムが書けるかは感覚的に分かる場合が多いと思います。ところが、納期や品質はトラブルが多い部分でもあります。大きな理由は「見えない時間」が存在するからです。見えない時間の正体見えない時間とは、予め計画されていない時間の事です。Web アプリの仕事の場合、プログラムの作成にかかる時間は見落とされる事はほぼありません。誰でも、考える時間だからです。しかし、テスト(検証)とデバッグの時間は見落とされたり、予想以上に時間がかかる場合があります。それが原因で、納期が遅れたり、納品した Web アプリがきちんと動作しないというトラブルに繋がる事がよく起きます。テスト(検証)は軽視されがち!特にテスト(検証)は、実際のプログラムを各作業(コーディング)に比べると軽視されがちな傾向があります。これは、テストをしないという意味ではなく、テストを行う「ケース」が限られている事が原因になる場合が多くなります。Web アプリに限らず、プログラムを開発する場合、思った通りに動作するかをチェックすることは誰でも重要だと認識しています。したがって、殆どの場合、テストがされないという事はほとんどありません。仕事で開発したプログラムでなくてもテストはされています。問題は、テストを
0
カバー画像

[Java入門] デバッグ機能について(20200608)

システム工房Matsuが提供する。オンラインプログラミングスクール
0
カバー画像

【アプリ】感想取り承ります☆

第三者の目線で・操作しやすいか?・わかりやすい説明、Tipsになっているか?など、試作品アプリやアップデート前アプリの感想取りを承ります!お客様目線にたって評価させていただきますので。けっこう辛口です。人数が足りない、もっと的確な意見がほしい等ありましたら、お気軽にご相談いただけますと幸いです。よろしくお願いいたします。
0
16 件中 1 - 16
有料ブログの投稿方法はこちら