프로그래밍 초보자가 가계부 프로그램을 만들어 보았을 때

5281 단어 MySQLRuby
예전에는 프로그래밍을 배운 지 4개월 정도 만에 앱을 개발해 봤기 때문에 그때를 떠올리면서 썼어요.당시(현재)는 프로그래밍 초보자여서 완성도가 조금도 높지 않았지만 프로그래밍을 처음 배운 사람에게는 일부분이라도 도움이 되고 싶어요.
디렉토리:
1. 소개
2. 애플리케이션 개요
3. 노력하는 이유
4. 느끼는 것
5. 조합 절차
6. 설치 내용 적용 정보
7. 배운 것/힘든 일
8. 개선점
9. 요약

1. 소개


2019년 2월 정년퇴직하여 프로그래밍 학교에서 3개월 동안 공부한 후 취임 활동을 거쳐 여름부터 엔지니어로 취직했다.

2. 애플리케이션 개요


기본 비용 절감 어플리케이션
개발 환경: Ruby on Rails, MySQL, Github
개발기간: 학교 졸업 후 2~3주 정도

3. 노력하는 이유


학교를 졸업하고 이해를 더 깊게 하고 싶어요(학교에서 드디어 따라왔기 때문에...)
・취직 행사에서 화제가 되고 싶군요 (경험가 분들의 조언입니다. 실제로 면접 때도 분위기가 뜨거워요!)

4. 느끼는 것


먼저 한마디로 프로그래밍을 배운 지 얼마 되지 않아 익숙해진 사람은 앱을 한 번 만들어 보는 것을 추천한다.
학교에 있을 때 과정이든 팀 개발이든 과제를 부여받았고'샘플'도 있었다.잘 모르겠지만 앞으로 나아가는 것은 솔직한 마음이다.이해가 안 가는 부분이 많은데 괜찮아요?이런 느낌.
개인 개발 오리지널 응용 프로그램, 디자인과 설치 기능은 모두 스스로 고려해야 하고 과정도 없다.아주 적은 지식을 동원하여 머리를 완전히 돌리는 것이 프로그래밍 학습으로 가장 강력한 수출이라는 것이다.
무엇보다 즐겁다.
완성도와 수준이 높은 기능의 설치는 별개로 말하자면 스스로 해 보는 것은 상당히 힘이 있다.

5. 조합 절차


어떤 응용 프로그램을 만들 것인가를 고려하다


학교에서 SNS학과 개발을 했기 때문에 다른 분야를 해보고 싶어요. 그리고 프로그래밍의 절차와 데이터베이스를 이해하기 위해서 가계수지가 얇지 않나 싶어요.자신도 가계부 앱을 사용해 봤기 때문에 인상을 남겼다.

전체적인 디자인


가계수지가 얇고 최소한으로 필요한 기능이 무엇인지, 설치하고 싶은 기능이 무엇인지 등을 배우기 위해 페이지별 디자인을 진행한다.
구성을 고려해서 어쨌든 종이에 써야 한다.

데이터베이스 디자인


어느 서비스든 그렇기 때문에 가계 수지가 낮고 데이터의 처리가 매우 중요하다.만약 데이터를 잘 꺼내지 못한다면 가계 수지가 얇으면 그다지 좋지 않을 것이다.필요한 표, 관계성 등은 여기도 종이에 써서 정리한다.

구현


1. 등록 로그인 페이지 구현


2. 각 페이지를 만든다 (아무튼, 간단한 것)


컨트롤러, 보기, 루트 등을 설정하여 골격을 만들고 전체를 둘러보며 향후 설치에 대한 인상을 잡다

3. 각 기능의 실현


이동하면서 시행착오를 하다.검증을 의식하면서 설치하다.페이지의 디자인도 조금씩 고기를 붙였다.

4. 재구성 등 세부 사항


이상은 자신의 실제 노력 과정을 소개했습니다. 경험이 풍부한 프로그래머가 하면 더욱 효율적일 수 있습니다...
참고가 됐으면 좋겠어요.

6. 설치 내용 적용 정보


주요 기능:
· 신규 등록, 로그인 가능
・ 수입과 지출을 날짜, 종류별로 입력하여 보관할 수 있다
・ 매월 예산 설정 가능
• 첫 페이지에 당월의 수입 예산과 지출 예산, 그리고 그날의 수입과 지출액을 자동으로 표시하여 그 차액을 알다
・ 년과 달을 선택하면 각 유형의 금액과 전체의 비율, 그리고 월의 합계액을 알 수 있다.
등등
비주얼 살짝 소개해드릴게요.
마지막으로 기재된 각 유형의 수지 상세 페이지를 소개했다.

7. 배운 것/ 힘든 일


배운 것


・어떤 어플리케이션을 직접 만드는지부터 구상한다.
・ 응용 프로그램에 필요한 기능, 처리 절차, 디자인 등 일련의 것을 스스로 고려한다.
・수업에 없는 부분을 스스로 조사하기 위해 조사할 힘이 생겼다.
・고려도, 조사도, 반복적인 시도도 모른 채 어느 유명 사이트에서 질문한다.
그때는 응용 프로그램의 배경도 전혀 모르고 모르는 사람에게 질문을 하는데, 어떻게 하면 질문의 의도를 쉽게 이해할 수 있을까.
등등
고기능적이고 완성도 높은 것보다 먼저 스스로 반복적으로 시도하면서 작동을 시도한다.알 수 없는 점은 조사, 고민, 성공마다 좋은 경험이 있다는 것이다.
자신의 머리로 생각하는 것이 가장 중요하다.
코드도 소개해주세요.
첫 페이지에는 당월 수입과 지출 예산이 표시됩니다.
def index

 @name = current_user.name

 # 今月は何月か

 time = Time.now
 this_month = time.month
 this_year = time.year

 # 設定した予算の今月

 @income_budget = Budget.find_by(year: this_year, month: this_month).income_amount
 @spending_budget = Budget.find_by(year: this_year, month: this_month).spending_amount
이번 달 당시 수입과 지출을 표시합니다.
# 今月の現在の収支状況

@current_income = Income.group("YEAR(date)").group("MONTH(date)").sum(:amount)
@current_income[[this_year,this_month]]
@current_income_view = @current_income[[this_year,this_month]]

@current_spending = Spending.group("YEAR(date)").group("MONTH(date)").sum(:amount)
@current_spending[[this_year,this_month]]¥
@current_spending_view = @current_spending[[this_year,this_month]]

야단난 일


· 배운 부분의 반대지만 디자인은 어렵다.
나는 내가 완벽주의적인 부분이 있어서 디자인이 타협할 수 없다고 생각하지만, 현재의 자신의 힘으로는 완벽한 디자인을 하기 어려울 것 같아서 먼저 포기했다.역시 예상대로 많은 변경점과 누락이 있었다.
• 가계 수지가 낮은 앱은 SNS 앱과 달리'분석'이 기능의 주요 역할을 하기 때문에 상당히 복잡하다.대부분의 기능은 데이터를 가공하고 처리하는 것이다.

8. 개선점


코드 이해하기 어려워


인코딩이 잘 맞아서 지금 코드를 봐도 잘 모르겠어요.팀 개발에서 학급 명칭을 상의하면서 코드를 열심히 썼지만 혼자 있으면 어울렸다.
읽을 수 있는 코드를 읽었을 때'이해하기 쉬운 코드는 남을 위해서일 뿐만 아니라 몇 달 후의 자신을 위해서'라고 쓰여 있다. 확실히 몇 달 후의 현재의 자신은 자신이 쓴 코드를 이해할 수 없다.

· 유지 보수성이 없습니다.


예를 들어 "연과 달을 선택하면 각 유형의 금액과 전체의 비율, 그리고 월의 합계액을 알 수 있다"는 기능이다.당신은 어떻게 데이터를 끌어왔습니까...
#収入計算
    @income_detail_saraly = Income.group("YEAR(date)").group("MONTH(date)").where(income_categories_id: 1, user_id: current_user.id).sum(:amount)
    @income_detail_saraly[[@search_year.to_i, @search_month.to_i]]
    @income_detail_saraly_view = @income_detail_saraly[[@search_year.to_i, @search_month.to_i]]
아시겠습니까?이것은 뜻밖에도 소득 유형의 임금액만 이렇게 많은 코드량이다.모든 비용을 빼면 어떤 코드가 될까?그것은 여기에 게재할 수 없다.
지금이라면'for문으로 돌리면 좋겠지''SQL문이 형편없구나'라고 생각했겠지만 복잡한 처리로 데이터를 찾았을 때 즐거워서 만족했어요."일단 제가 표현해 보겠습니다. 재구성은 뒤에서 시작됩니다."이렇게 방치한 전말이 바로 이것입니다.
문제는 코드가 너무 길다는 것 외에 중요한 점은 장래에'사용자 스스로 임의의 유형의 기능을 추가할 수 있다'는 것을 실현한다면 대응할 수 없다는 것이다.위의 코드에서 모든 범주는 하나하나 직접 써서 데이터를 얻기 때문이다.
이런'기능으로는 가능하지만 유지보수성이 부족하다'는 기능이 많다.

검증


・ 사용자가 입력할 수 있도록 다양한 카테고리를 만들지만 값이 없으면 인민폐 0으로 돌아갑니다.
· 예산이 설정되면 같은 달에 입력하려면 변경 화면으로 이동
잠깐만, 생각만 해도 많고, 도중에 눈치채는 경우도 많아.
아직 눈치채지 못한 것도 있을 거예요.

총결산


역시 개인적으로 앱을 해보는 것은 힘들고 생각하는 일이 많아서 도중에 여러 가지 일을 알아차렸습니다. 그러고 보니 저도 어떻게 했는지 의문이 많습니다.그러나 책을 읽고 이해하기 싫고 여러 번 썼는데'자기 사고'가 무엇보다 중요하다는 것을 강하게 느꼈다.

좋은 웹페이지 즐겨찾기