Skip to content
This repository has been archived by the owner on Mar 1, 2021. It is now read-only.

Igor Lopatinskiy #23

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

Igor Lopatinskiy #23

wants to merge 6 commits into from

Conversation

IgorLo
Copy link

@IgorLo IgorLo commented Mar 4, 2019

it works

@otopba otopba self-requested a review March 4, 2019 21:03
Copy link

@otopba otopba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Задание сделано хорошо, нужно поправить небольшие замечания что оставлены к коду.

Общие замечания:

  1. Нет выделение активного элемента в RecyclerView
  2. Очень длинное имя разламывает верстку

@Override
public void onClick(View v) {
clearFields();
adapter.setActiveStudent(adapter.NO_STUDENT);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NO_STUDENT статичное поле, можно обращаться прямо через класс

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пофиксил

}

private void saveStudent() {

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Следи за лишними строками

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пофиксил
Казалось, что так более читабельно)


private void saveStudent() {

String firstNameStr = firstName.getText().toString();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

firstName.getText() может вернуть null

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пофиксил


private void saveStudent() {

String firstNameStr = firstName.getText().toString();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно ли в названии переменно пояснять что это стринг?

Copy link
Author

@IgorLo IgorLo Apr 11, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У меня уже есть переменная firstName, в которой хранится само поле ввода
Если не пояснять, что это стринг, то придётся назвать ту переменную firstNameField
В итоге так или иначе нужно пояснять
Не знаю, как лучше сделать)

@@ -4,13 +4,13 @@

private String firstName;
private String secondName;
private boolean maleGender;
private boolean isMale;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

обычно называют переменную male, что бы геттер можно было назвать isMale
С твоим названием, сеттер должен иметь название не setMale а setIsMale

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Назвал "male"

@@ -45,4 +45,11 @@ public int getPhoto() {
public void setPhoto(int photo) {
this.photo = photo;
}

public void copy(Student student) {
this.firstName = student.firstName;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не забывай что присваивая значение объекта ты не копируешь его, а лишь устанавливаешь ссылку

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пофиксил, но не уверен что правильно


public static final int NO_STUDENT = -1;
private MainActivity context;
private List<Student> students = new LinkedList<>();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Тут нужен именно LinkedList?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Делал LinkedList опираясь на то, что студентов будут часто удалять
Думаю, разумнее будет всё же ArrayList, так как чаще всего элементы достаются из списка, чем удаляются
Переделал

public class StudentAdapter extends RecyclerView.Adapter<StudentAdapter.StudentViewHolder> {

public static final int NO_STUDENT = -1;
private MainActivity context;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Плохой паттерн передавать активити в адаптер. Для работы с активити у тебя есть лисенеры

@@ -0,0 +1,13 @@
package ru.ok.technopolis.students;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачем нужен этот класс?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Случайно оставил
Теперь удалил

@@ -1,9 +1,134 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Большая вложенность. Чем меньше вложенность тем лучше. Пробуй использовать более сложные лейауты

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

До сих пор очень высокая вложенность

@@ -45,4 +54,12 @@ public int getPhoto() {
public void setPhoto(int photo) {
this.photo = photo;
}

public void copy(Student student) {
this.firstName = new String(student.firstName);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачем тут создаются новые объекты?

}

private void bind(Student student) {
if (student.isSelected())
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше всегда ставить фигурные скобки

@@ -1,9 +1,134 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

До сих пор очень высокая вложенность

@otopba
Copy link

otopba commented Apr 20, 2019

Фотография человека при редактировании не совпадает с фото из списка

image

@otopba
Copy link

otopba commented Apr 20, 2019

Работа принята
8 балов

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants