2016-10-21 2 views
0

Github Pages로 호스팅되고 지킬로 구동되는 블로그가 있습니다. 는 지킬과 새 게시물을 작성하려면 적어도 다음과 같은 세부 사항 파일의 헤더에 몇 가지 정보를 넣어해야합니다Java로 파일 모델을 만드는 것이 좋은 코드입니까?

--- 
layout: [layout] 
title: [title] 
date: [date] 
--- 

파일 이름이 날짜를해야합니다. 예를 들면 다음과 같습니다.

2016-10-21-name-of-the-post.md 

파일을 자동으로 포맷하기 위해 GUI로 Java로 프로그램을 만들었습니다. 그래서 나는 그 내용을 써야합니다. 나는 그것이 좋은 코드인지 알아야 할 것이다. 피해야 할 것은 어디입니까? 필자는 새로운 프로그래머입니다.

import java.util.Date; 
import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Scanner; 
import java.io.PrintWriter; 
import java.io.IOException; 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 

public class Post extends JFrame implements ActionListener{ 

    // GUI THINGS 
    JPanel pl = new JPanel(); 
    JTextField tfLayout = new JTextField("layout: default", 20); 
    JTextField tfTitle = new JTextField("title:", 20); 
    JTextField tffl = new JTextField("filename", 20); 
    JTextArea tfDes = new JTextArea("Text",10,20); 
    JButton b1 = new JButton("Post immediately"); 

    String filename = "/path/to/the/_posts/folder"; 
    PrintWriter pw = null; 
    Scanner sc = new Scanner(System.in); 
    DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 
    String layout = ""; 
    String title = ""; 
    String description = ""; 
    Date date = new Date(); 
    String actualdate = df.format(date); 
    JTextField tfDate = new JTextField("date: " + actualdate); 
    String format; 

    public Post(){ 
     super("Nouveau post"); 
     filename += new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "-"; 
     setContentPane(pl); 
     setLayout(new GridLayout(5,1)); 
     tfDes.setLineWrap(true); 
     tfDes.setWrapStyleWord(true); 
     pl.add(tffl); 
     pl.add(tfLayout); 
     pl.add(tfTitle); 
     pl.add(tfDate); 
     pl.add(tfDes); 
     pl.add(b1); 

     b1.addActionListener(this); 

    } 

    public static void main(String[] args){ 

     Post window = new Post(); 
     window.pack(); 
     window.setLocationRelativeTo(null); 
     window.setSize(400, 300); 
     window.setVisible(true); 
    } 

    public void actionPerformed(ActionEvent ae) {  
     layout = tfLayout.getText(); 
     filename += tffl.getText() + ".md"; 
     title = tfTitle.getText(); 
     description = tfDes.getText(); 
     actualdate = tfDate.getText(); 

     format = "---\n" + layout + "\n" + title + "\n" + actualdate + 
      "\n---\n<p>" + description + "</p>"; 

     try { 
      pw = new PrintWriter(filename, "UTF-8"); 
     } catch(IOException io) { 
      System.out.println("ERROR while creating the file"); 
     } 

     pw.print(format); 
     pw.close(); 

     JOptionPane.showMessageDialog(this, "Sucesssfully created a post."); 
     this.dispose(); 
    } 
} 
+5

[코드 검토] (http://codereview.stackexchange.com/) 스택 교환에 속해 있기 때문에이 질문을 주제와 관련이없는 것으로 보겠습니다. –

+1

CK : 귀하의 질문이 좋지 않다는 의미는 아니며 코드 검토시 더 나은 답변을 찾을 수 있습니다. 행운을 빕니다! –

답변

0

이 질문은 너무 일반적입니다 :

는 여기 코드입니다.

그러나 코드를 Model-View-Presenter로 분할하는 것이 좋습니다. 게시물을 자신의 클래스에 넣고보기의 논리를 자체 클래스에 넣고 입력을 처리하는 발표자를 구현하십시오. 또한 좋은 코드에 관심이 있다면 Clean Coding (예 : Robert C. Martin)에 대한 정보를 읽어 보는 것이 좋습니다.

또한 상수에 대한 최종 변수를 만드십시오.

+0

"이 질문은 너무 일반적입니다"라고 대답하는 사람은 대답을하지 않는 것이 좋습니다. –

관련 문제