LoginSignup
2
6

More than 1 year has passed since last update.

【ChatGPT】エンジニアが使える汎用的なプロンプト

Last updated at Posted at 2023-04-27

エンジニアが使える汎用的なプロンプト

あなたは、プロの【その分野の専門家】です。

以下の制約条件と入力文をもとに、【出力内容】を出力してください。

# 制約条件
  - 前提条件
  - 決まりごと

# 入力文
期待する出力結果・指示

	あなたは、プロのプログラマーです。
	
	以下の制約条件と入力文をもとに、プログラムを出力してください。
	
	# 制約条件
	  - JavaScriptを使うこと
	  - React 18.1.0を使うこと
	  - AtomicDesignでコンポーネントを作ること
	  - 初心者でも分かりやすいコードを書くこと
	  - コメントを残すこと
	
	# 入力文
	huluやネットフリックスのサービスページのような動画一覧ページを作成する
	CSSもつけてリッチなデザインにする。

出力結果

以下のコードは、React 18.1.0とAtomic Designを使って、HuluやNetflixのような動画一覧ページを作成するための簡単な例です。初心者にも分かりやすいようにコメントを追加しました。

まず、Atomic Designに基づいてコンポーネントを設計します。この例では、以下の階層構造を持つコンポーネントを作成します。

  1. アトムズ (Atoms): 基本的なHTML要素
  2. モレキュール (Molecules): アトムズを組み合わせた小さな機能単位のコンポーネント
  3. オーガニズム (Organisms): モレキュールを組み合わせた大きな機能単位のコンポーネント
  4. テンプレート (Templates): オーガニズムを組み合わせたページのレイアウト
  5. ページ (Pages): テンプレートにデータを流し込んで完成させた実際のページ
// Atoms/Image.js
import React from 'react';

const Image = ({ src, alt, ...props }) => {
  return <img src={src} alt={alt} {...props} />;
};

export default Image;

// Atoms/Title.js
import React from 'react';

const Title = ({ children, ...props }) => {
  return <h2 {...props}>{children}</h2>;
};

export default Title;

// Molecules/Thumbnail.js
import React from 'react';
import Image from '../Atoms/Image';
import Title from '../Atoms/Title';

const Thumbnail = ({ imageUrl, title, ...props }) => {
  return (
    <div className="thumbnail" {...props}>
      <Image src={imageUrl} alt={title} />
      <Title>{title}</Title>
    </div>
  );
};

export default Thumbnail;

// Organisms/VideoList.js
import React from 'react';
import Thumbnail from '../Molecules/Thumbnail';

const VideoList = ({ videos, ...props }) => {
  return (
    <div className="video-list" {...props}>
      {videos.map((video) => (
        <Thumbnail key={video.id} imageUrl={video.imageUrl} title={video.title} />
      ))}
    </div>
  );
};

export default VideoList;

// Templates/VideoGallery.js
import React from 'react';
import VideoList from '../Organisms/VideoList';

const VideoGallery = ({ videos, ...props }) => {
  return (
    <main className="video-gallery" {...props}>
      <VideoList videos={videos} />
    </main>
  );
};

export default VideoGallery;

// Pages/VideoGalleryPage.js
import React from 'react';
import VideoGallery from '../Templates/VideoGallery';

const VideoGalleryPage = ({ videos }) => {
  return <VideoGallery videos={videos} />;
};

export default VideoGalleryPage;

次に、CSSを追加してリッチなデザインにします。この例では、シンプルなスタイルを適用していますが、お好みでカスタマイズしてください。

/* styles.css */
.thumbnail {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 20px;
  padding: 20px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.thumbnail img {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.thumbnail h2 {
  margin-top: 10px;
  font-size: 18px;
  text-align: center;
  color: #333;
}

.video-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  padding: 20px;
}

.video-gallery {
  padding: 40px 0;
  background-color: #f5f5f5;
}

出来上がり

スクリーンショット 2023-04-27 16.08.06.png

まぁネットフリックスのデザインとはほど遠いですが、
無事にChatGPTにプログラム出力をお願いすることができました。

GPTくんにお願いする時ぜひご参考ください。

2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6