Skip to content

Instantly share code, notes, and snippets.

View guilherme-v's full-sized avatar

Guilherme Silva guilherme-v

View GitHub Profile
@guilherme-v
guilherme-v / clean_code.md
Last active August 24, 2018 17:18 — forked from wojteklu/clean_code.md
Summary of 'Clean code' by Robert C. Martin

Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.


General rules

  1. Follow standard conventions.
  2. Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
  3. Boy scout rule. Leave the campground cleaner than you found it.
  4. Always find root cause. Always look for the root cause of a problem.

Design rules

import 'dart:async';
import 'dart:io';
import 'dart:isolate';
main(List<String> args) async {
stdout.writeln("isolate running the 'main' method is called: " +
Isolate.current.debugName);
// creates a port to receive messages on MainIsolate
final mainControlPort = ReceivePort();
import 'dart:async';
import 'dart:io';
import 'dart:isolate';
main(List<String> args) async {
Isolate timerIsolate;
final mainControlPort = ReceivePort();
// Creates a new isolate
import 'package:http/http.dart' as http;
import 'package:shared_preferences/shared_preferences.dart';
class AuthenticatedHttpClient extends http.BaseClient {
SharedPreferences sharedPref;
AuthenticatedHttpClient({this.sharedPref});
// Use a memory cache to avoid local storage access in each call
String _inMemoryToken = '';
String get userAccessToken {
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
void main() async {
// Do not include it when building for production
Stetho.initialize();
// Run the app
runApp(MyApp());
}
import 'dart:convert';
import 'dart:io';
Future<void> main() async {
// We'll create a local server that will be listening for requests at port 8082
final server = await HttpServer.bind('127.0.0.1', 8082);
await for (HttpRequest req in server) {
// All requests will be logged into a local 'logs.tmp' file
final File file = File('./logs.tmp');
import 'dart:async';
import 'dart:convert';
import 'dart:io';
import 'package:ansicolor/ansicolor.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
void main() {
runZoned(
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
import 'package:flutter/material.dart';
GlobalKey _keyMyApp = GlobalKey();
GlobalKey _keyMaterialApp = GlobalKey();
GlobalKey _keyHomePage = GlobalKey();
GlobalKey _keyScaffold = GlobalKey();
GlobalKey _keyAppbar = GlobalKey();
GlobalKey _keyCenter = GlobalKey();
GlobalKey _keyFAB = GlobalKey();
GlobalKey _keyText = GlobalKey();