Code Monkey home page Code Monkey logo

linkapp's People

Contributors

dependabot[bot] avatar satoshuuu avatar taiki-fw avatar

Stargazers

 avatar

Watchers

 avatar  avatar

linkapp's Issues

フォーマッターの導入

PB

VSCodeの拡張機能であるPrettierを利用しているので、フォーマットがエディタ依存となっている

導入

  • prettier ... コードをフォーマット(整形)してくれる。
  • eslint-plugin-prettier ... prettier -> eslintの順で実行してくれる。
  • eslint-config-prettier ... prettierが整形した箇所をeslintに無視させる。

RESTful APIの仕様変更

べき等を保つ

リクエストの結果は何度送信しても同じ

  • GET
  • PUT
  • DELETE

安全性を保つ

リソースを変更しない

  • GET

追加

  • statusコード(仕様にそった)
  • 通信出来ているかを確認する。(bodyでメッセージを送信...Webを支える技術参照)

リンクコンポーネント仕様書

  • 見出し&URLは必須項目
  • 投稿ボタンは必須項目が入力されるまで押せないようにする。(disable)
  • 各入力欄はSQL・HTMLタグに使用される特殊文字(<>, </>, (), *など)を正規表現をかける
  • エラー内容を各入力欄の下に表示する
  • データ送信先(/api/link)にtitle, comment, urlを送信する

※注意:App.jsに投稿までのテスト処理が書いてあるがあくまでテストなので送信項目まで引用可

編集機能について

修正後にDB保存されるが、取得し更新まで出来ていないので修正が必要

  1. 編集ボタンを押し編集する。
  2. 完了ボタンを押すことでAjax通信が始まりDBが更新される
  3. 表示は変わっているが、表示内容が再度DBから取得されていないので修正が必要。
    エラーも起こっている

Nodeの設定

  • ES2015以降のブラケット構文を使用する為に、babelでコンパイル

  • DB操作をブラケット構文として、リファクタリング

  • TypeScript化。tscでトランスコンパイル

Set-Cookieの新機能

追加機能

  • 期限付き永続ログイン
  • ブラウザの終了時までログイン

実装方法

上記機能のどちらを利用するかのcheckboxを選択肢する。

  • true : 期限付き永続ログイン
  • false : ブラウザの終了時までログイン
    この場合、request.session.cookie.expire = false;にする

修正

session.idでuserの名前を利用しているので、ライブラリを使う。
https://www.npmjs.com/package/uniqid

Cardのソート

LinkCardデフォルトでの並び順を作成日(降順)とするソートロジックをReact(クライアント側)で実装する。

クラアント対サーバーは圧倒的にクライアント側の方が数が多いいためサーバー側でsortを行ってしまうと負荷がクラアントの数分だけ生じてしまうのでクライアント側で実装する事でアクセスする側で処理を行い負荷対策を取るため

LinkCardの並び替え

  1. Reduxで並び順を管理する。
  2. 並び替えの状態をContainerで取得し、Storeから取得したLinkCardを並び順でfilterをかける。

テストデータの用意

テストデータの作成

  • 複数のユーザー
  • 複数のLinkCardデータ

テストコード

目的

  • DB機能を担保する
  • リファクタリング後の動作確認の手間を減らす

Postgresコンテナのmigration SQLfile

  1. データベースに必要なTable設計のファイルを用意
  • Usersテーブル設計 1
  • LinkCardsテーブル設計 多
  1. コンテナ起動時に実行する用に設定

LinkCardを作成する画面の実装方法

新規投稿画面の実装について

1.新規作成ボタンを押す
2.modalで投稿formが現れる
3.投稿フォーム外を押して作成をやめる | 送信画面を押す
4.modalを解除してTopPageへ

AtomicDesign

Reactのファイル構成にAtomicDesignを取り入れる。

ページネーション

Pb

Reduxへ移行

Pagenation

Key 内容
currentPage 現在のページ番号
linkCardPerPage 1ページに表示するLinkCard数
IndexOfLastItem 表示する最後のLinkCardのIndex番号
IndexOfFirstItem 表示する最初のLinkCardのIndex番号

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.