J'ai commencé à programmer à partir de Java. Le but était d'en faire usage dans mon travail, En ce moment, je crée principalement des services Web comme passe-temps. J'étais intéressé à l'origine parce que j'ai entendu dire que Ruby on Rails est le courant dominant du développement personnel et des entreprises. Cependant, même si Java est également amateur, apprendre un autre langage est trop cher, et j'ai pensé que ce serait bien s'il pouvait être conçu comme un service Web.
Ainsi, même avec le framework Java, j'ai pu développer simplement et rapidement en utilisant le nouveau Spring Boot. Du développement à la sortie avec Spring Boot, j'ai pu faire ce que je voulais faire. Pourtant, j'étais curieux à propos de Ruby On Rails, mais d'un autre côté, j'étais également attaché à Spring Boot dans une certaine mesure. J'ai trouvé que c'était un peu cool d'utiliser un framework différent des gens, alors j'ai prévu de continuer à l'utiliser tel quel.
C'était il y a environ 3 semaines.
J'ai créé le service Web que je voulais créer, et cette fois j'ai commencé le développement dans le but de le publier dans quelques semaines. Cependant, j'étais accro à l'authentification de connexion Twitter. Bien sûr, j'ai eu des problèmes parce que cela ne fonctionnait pas bien, donc j'ai fait des recherches sur diverses choses, mais les informations sur l'authentification Twitter à l'aide de Spring Boot (je veux lier Spring Social et Spring Security) sont extrêmement petites même si elles sont incluses en anglais. .. Je n'ai essayé aucun d'entre eux et cela n'a pas fonctionné. Je l'ai utilisé ici pendant 2 jours. (Environ 8 heures) Pour être honnête, il y avait de nombreuses parties où je ne pouvais pas comprendre le processus de traitement. Je pense qu'il y avait aussi un moyen de rechercher la référence officielle à partir de zéro et de l'implémenter vous-même. Je pense qu'il est normal de prendre autant de temps pour implémenter les fonctions d'origine, mais j'avais un fort désir de copier et coller honnêtement des parties générales telles que l'authentification Twitter. Quand je l'ai recherché dans Ruby on Rails, j'ai trouvé de nombreux exemples et la mise en œuvre était simple.
Après cela, j'aimerais faire des recherches sur Rails et implémenter des services Web individuellement avec un sens de la vitesse. En réponse à la demande Je pensais clairement que Ruby On Rails convenait. Bien que cela coûte de l'apprentissage, cela devrait être plus efficace si vous changez dans quelques mois. Nous avons décidé d'arrêter le développement du service et d'y basculer. Je suis également passé de VScode à Atom.
J'ai étudié pendant environ 2 semaines (40 à 50 heures). Lire l'édition Ruby de l'installation de points et le tutoriel Ruby on Rails dans le train et pendant la pause déjeuner C'est comme bouger vos mains après être rentré chez vous pour le mettre en œuvre.
Le didacticiel Ruby on Rails a été ignoré et il a fallu environ 3 semaines pour le lire → implémenter → lire. À partir de là, je prévois d'étudier les parties que je ne comprends pas lors de la création du service.
Spring Boot vs Ruby on Rails Ruby on Rails était le meilleur!
Incroyablement important. D'autant plus qu'il n'y a personne qui puisse facilement écouter en autodidacte L'activité du professeur Google devient un enjeu vital.
Spring Boot: Spring Boot n'a pas beaucoup d'informations sur le Web. J'ai donc cherché un livre de référence, mais je ne pouvais pas dire s'il était bon ou mauvais car il n'y avait que 4 types de choix et peu de critiques de livres. Je n'avais pas de réserve à la librairie de mon quartier, alors je suis allé à Shinjuku pour l'acheter.
Ruby on Rails: Je n'ai pas payé 1 yen pour apprendre cette fois. Tutoriels Ruby on Rails, services d'apprentissage en ligne pour les débutants C'était un cadre très facile à suivre car vous pouvez en apprendre beaucoup en recherchant. Nous avons des échantillons abondants, nous pouvons donc nous attendre à accélérer le développement futur.
Spring Boot: Installer Java, passer, installer Maven, passer, Il a fallu environ une heure pour commencer à l'utiliser. Les débutants sont à un niveau frustrant.
Ruby on Rails: J'utilise MAC, mais c'était tellement simple que j'ai oublié comment le faire. ※Oublié.
Spring Boot: Accédez à Spring Initializer (https://start.spring.io/) et créez le package. Je ne sais toujours pas quoi mettre dans les éléments Groupe et Artiface, et il y a de nombreux éléments de sélection.
Ruby on Rails: Le développement peut être démarré rapidement avec des rails nouveaux depuis la console. Il semble que le type de base de données puisse également être spécifié en option.
Spring Boot: Par défaut, vous ne pouvez rien faire de particulier, vous devez donc décider des règles de placement et créer vous-même le dossier. Au début, je ne connaissais pas les meilleures pratiques, et je me demandais si tout allait bien, mais j'ai réussi à le faire avec mon propre MVC.
Dossier source créé par Pochipochi:
Ruby on Rails: Lorsque vous créez un package avec Rails new, des dossiers à des fins différentes telles que le modèle, la vue et la configuration sont automatiquement créés. Même si vous ne vous souciez pas de la disposition du code source, elle sera organisée selon la valeur par défaut, ce qui est utile pour les débutants. Vous pouvez omettre le travail simple habituel de le générer automatiquement.
Dossier généré automatiquement Dossier source:
Spring Boot: Il est géré par pom (Maven). Les éléments décrits sont comme ça.
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Ruby on Rails: Il est géré par un fichier gem. Les éléments décrits sont les mêmes. Est-ce un peu simple?
Gemfile
gem 'rails', '~> 5.2.0'
Spring Boot:
Le contrôleur gère le mappage d'URL et de vue et la transmission des valeurs.
Étant donné que le mappage est décrit sur plusieurs fichiers, quelle URL est quelle vue et quel contrôleur
Je ne sais souvent pas si c'est lié. value =" / "
est l'URL correspondante mav.setViewName (" index ")
Recherchez et affichez le modèle (fichier HTML) nommé index. Il existe diverses autres méthodes de définition.
indexController.java
@Controller
public class indexContoroller{
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView showIndex (ModelAndView mav){
mav.setViewName("index");
return mav;
}
}
Ruby on Rails:
Le mappage d'URL est défini dans routers.rb.
Seul le mappage d'URL est coupé du contrôleur Spring Boot. Il est hautement lisible car il peut être répertorié. get '/ help', to: 'static_pages # help'
a' / help 'comme URL
Une classe avec un traitement à exécuter par "pages_statiques # help".
routers.rb
Rails.application.routes.draw do
get '/help', to: 'static_pages#help'
static_pages_controller.rb
class StaticPagesController < ApplicationController
def help;
#hogehoge
end
ends
Spring Boot: Lorsque vous souhaitez utiliser DB, préparer une base de données, créer une table, Après cela, vous devez préparer plusieurs classes pour la connexion à la base de données. L'opération est abstraite, mais le nombre d'étapes pour pouvoir écrire des données n'est pas limité.
C'est un peu long, mais cela décrit la classe prête à faire fonctionner la table Member.
«Member.java» correspond à la «Table des membres» et reçoit les données.
Vous pouvez personnaliser la requête avec MemberRepository.java
.
L'accès réel est @Autowired MemberRepository repository;
dans la classe que vous souhaitez utiliser
Créez une instance de référentiel dans et utilisez-la comme repository.findById (id);
.
JpaRepository <Member, Integer>
provoquera une erreur si vous ne spécifiez pas le type de la clé primaire de la table.
MemberRepository.java
public interface MemberRepository extends JpaRepository<Member, Integer> {
public Member findByUsername(String username);
public boolean existsByUsername(String username);
}
Classe correspondant à la table:
Member.java
Entity
@Table(name = "member")
public class Member implements UserDetails {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
// private Long userid;
private int userid;
@Column(nullable = false, unique = true)
private String username;
@Column(nullable = false)
private String password;
@Column(nullable = false)
private String displyname;
public Member() {
super();
}
public String getDisplyname() {
return displyname;
}
public int getUserid() {
return userid;
}
public void setDisplyname(String displyname) {
this.displyname = displyname;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public Collection<? extends GrantedAuthority> getAuthorities() {
return null;
}
@Override
public String getPassword() {
return this.password;
}
@Override
public String getUsername() {
return this.username;
}
public String getMail() {
return this.displyname;
}
@Override
public boolean isAccountNonExpired() {
return true;
}
@Override
public boolean isAccountNonLocked() {
return true;
}
@Override
public boolean isCredentialsNonExpired() {
return true;
}
@Override
public boolean isEnabled() {
return true;
}
}
Ruby on Rails: `les rails génèrent le modèle" nom de table "contenu: texte Lorsque vous exécutez la commande like, la table et la classe requises pour l'opération sont automatiquement générées. Vous pouvez soudainement lire et écrire à partir de la base de données comme indiqué ci-dessous.
m = "nom de la table".new
m.find_by()`
Je ne me suis jamais connecté directement à la DB jusqu'à présent. Rails fait presque oublier l'existence de DB.
Spring Boot: J'ai implémenté la fonction de téléchargement d'image dans Spring Boot, mais c'était assez difficile. Télécharger et valider en HTML et JS, Après l'avoir reçu, placez le chemin du fichier dans la base de données et enregistrez le fichier localement. J'ai dû écrire le processus à partir de zéro.
Ruby on Rails: En ce qui concerne le téléchargement d'images, il existe un joyau appelé CarrierWave, Il peut être implémenté avec environ 1/3 du traitement de Spring Boot. Spring a beaucoup de fonctionnalités utiles, mais Rails est meilleur. J'ai une bonne impression en matière de développement Web.
Spring Boot: En fait, Spring Boot est également fourni avec Tomcat, il s'agit donc d'un tirage au sort. S'il s'agit du port 80 par défaut, il ne peut pas être démarré localement sur le MAC, il est donc nécessaire de spécifier le numéro de port et de le démarrer.
Ruby on Rails: Le numéro de port 3000 semble être la valeur par défaut, vous n'avez donc rien à faire
Rails a beaucoup de travail pénible en arrière-plan, J'écris un programme, mais j'ai l'impression de jouer à un puzzle ou à un jeu. Quant à Spring Boot, la fonction peut être implémentée après avoir traversé diverses procédures, l'équipe était donc solide. Je pense qu'il convient pour faire de grandes applications, mais au niveau du développement personnel La conclusion actuelle est que vous n'avez pas besoin de cette étanchéité.
Recommended Posts