tell me one of your favorite project-練習英語

原則:引導面試官,不要提不少本身不清楚的東西html

 

 

【DFS模板】前端

【BFS】vue

q.offer(root)在最上端,q建立後緊隨其後java

擴展時用的是q.poll()中的headnode

 【segment tree】python

 

【lambda】mysql

 

Lambda 表達式可使代碼變的更加簡潔緊湊。 語法 lambda 表達式的語法格式以下: (parameters) -> expression 或 (parameters) ->{ statements; }

 

Arrays.sort(players, (String s1, String s2) -> (s1.compareTo(s2)));  

【設計模式】 webpack

 Factory ios

singletonnginx

 

 

【recursive bs】 

 

// Java implementation of recursive Binary Search 
class BinarySearch { // Returns index of x if it is present in arr[l.. // r], else return -1 
    int binarySearch(int arr[], int l, int r, int x) { if (r>=l) { int mid = l + (r - l)/2; // If the element is present at the // middle itself 
            if (arr[mid] == x) return mid; // If element is smaller than mid, then // it can only be present in left subarray 
            if (arr[mid] > x) return binarySearch(arr, l, mid-1, x); // Else the element can only be present // in right subarray 
            return binarySearch(arr, mid+1, r, x); } // We reach here when element is not present // in array 
        return -1; } 

 

【index用於加速查詢】

 

CREATE INDEX index_name
on table_name (column1, column2);

 

 

【inheritance繼承 就是extens子類】

 

// derived class 
class MountainBike extends Bicycle  { // the MountainBike subclass adds one more field 
    public int seatHeight; // the MountainBike subclass has one constructor 
    public MountainBike(int gear,int speed, int startHeight) { // invoking base-class(Bicycle) constructor 
        super(gear, speed); seatHeight = startHeight; } // the MountainBike subclass adds one more method 
    public void setHeight(int newValue) { seatHeight = newValue; } // overriding toString() method // of Bicycle to print more info 
 @Override public String toString() { return (super.toString()+ 
                "\nseat height is "+seatHeight); } }  

【封裝的好處】

 

使用封裝有三大好處:隱藏控制修改的影響

 

         一、良好的封裝可以減小耦合、影響

 

         二、類內部的結構能夠自由修改。

 

         三、能夠對成員進行更精確的控制。

 

         四、隱藏信息,實現細節。

 

 

public class Husband { /* * 對屬性的封裝 * 一我的的姓名、性別、年齡、妻子都是這我的的私有屬性 */
    private String name ; private String sex ; private int age ; private Wife wife; /* * setter()、getter()是該對象對外開發的接口 */
    public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void setWife(Wife wife) { this.wife = wife; } }

 

【Java關鍵字 - 類與類之間使用】

 

【public】無論在哪一個包,隨意調用 
【private】僅僅在本類下面調用,就算該類被別的類繼承extends了,也沒法使用private權限的變量和函數 
【protected】主要跟繼承有關係。

 

 

【java和c的區別,string和stringbuilder的區別,java和python的區別】

過程&對象,是否跨平臺

 

String 字符串常量
StringBuffer 字符串變量(線程安全)
StringBuilder 字符串變量(非線程安全)

 

Dynamic vs Static Typing 動態類型 vs. 靜態類型. not as strong virtual machine.

【angularjs的dependency】

pass dependency to an object when it is called

 

avoid【ajax】

asynchronous Web applications

 

avoid【 jQuery】

JS famework

 

【MySQL vs mongodb】

dynamic/ data type/ programming動態編程的數據類型

 

 

【OOP】

對象的「抽象」、「封裝」、「繼承」、「多態」

 

【多線程,死鎖,memory】

 

【何時用interface,abstract class,polymorphism,encapsulation(data-hiding)】

interface: use implement, has abstact method, can be many

abstract class:general variables , has abstact method,have construcror, only one

 

【按照他給的要求,設計一個employee的class。封裝一些信息什麼的】

要有返回對象的constructor

 

  publicclassEmployee
{
    // create data fields
    private String firstName;
    private String lastName;
    private String phoneNumber;
    private String address;
    private int id;
    private String title;
    private double Salary;
 
    // Construct a default Employee object
    public Employee()
    {
    }
 
    // Construct a second constructor
    public Employee (String newFirstName, String newLastName)
    {
        firstName = newFirstName;
        lastName = newLastName;
    }
 
    //This method returns a String with the contents of
    //the variable firstName to whatever object calls it
    public String getFirstName()
    {
        return firstName;
    }
 
    //This method allows the contents of firstName
    //to be changed to store a different String value, should that be required
    public void setFirstName (String newFirstName)
    {
        firstName = newFirstName;
    }
 
}

 

 

【project裏怎麼用到JUnit的】

 

【web實現問了http怎麼通訊】

capacity:Short polling>long polling>long connection SSE>WebSocket;

perf: opposite

 

【full-stack的project問web相關的問題,request, response包含什麼,Restful API是啥等等】

URL定位資源,用HTTP動詞(GET,POST,PUT,DELETE)描述操做。

 

GET:http://www.xxx.com/source/id 獲取指定ID的某一類資源。例如GET:http://www.xxx.com/friends/123表示獲取ID爲123的會員的好友列表。若是不加id就表示獲取全部會員的好友列表。
 POST:http://www.xxx.com/friends/123表示爲指定ID爲123的會員新增好友。其餘的操做相似就不舉例了。
--------------------- 做者:hjc1984117 來源:CSDN 原文:https://blog.csdn.net/hjc1984117/article/details/77334616 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!

 

 

【sql 的安全相關的東西】

SQL注入能夠分爲平臺層注入和代碼層注入。前者由不安全的數據庫配置或數據庫平臺的漏洞所致;後者主要是因爲程序員對輸入未進行細緻地過濾,從而執行了非法的數據查詢。

 

【設計數據庫:想要在你的系統裏查詢本身股票狀況】

UX - LOGIN- ACCOUNT& TRANSACTION INTERFACE

 

DB:

ACCOUNT: ID OWNER HISTORY INFO要有一個存歷史信息的帳戶

ADMIN: NAME/EMAIL/PHONE/PASSWORD...

USER: NAME/EMAIL/PHONE/PASSWORD...

 

TRANSACTION: BUY/SELL/CANCELL 要寫交易哦

 

 

 

 

核心功能:註冊登錄,

QPS:

⚓️困難:

⚓️用了什麼:

⚓️效果:

⚓️收穫什麼:

 

 

📟 📟

 

⚓️是什麼:

 

核心功能:

 

 

TEMPLATE:

 

1. Clarify the problem: constraint, scale, use cases (corner cases) => number of users, frequency of user actions: userbase, QPS, read/write ratio, how large the size of data is, etc.

 

2. Extract use cases: a. input something to process b. provide certain services

 

3. Abstract design:

   - Diagram of components of your designed system and its connections

   - Justify your design with use cases, constraints and corner cases

   - A typical component design

    Web gateway (load balancer)

    Application service layer

    Data cache (reddis, memcached: cache_key, LRU, etc)

    Data storage (DB: single DB, master-slave, sharding)

    Message Queue + notification center

    Logs + storage + analytics

    Search

 

4. Evaluation: performance, reliability(robustness), scalability

  - Bottlenecks -> database: cache + master-slave + sharding

  - monolithic => modular => multiple process + RPC => service oriented

  - Perf tuning: cache, async process (message queue)

  - etc

 

 

5. Trade offs: able to talk about these trade-offs, and to measure their impact on the system given the constraints and use cases defined.

-----------------------------------------------

📟RESTFUL api📟

⚓️是什麼:應用程序之間傳遞信息的api

微博的:登陸、收藏等

理念:用URL定位資源,用HTTP描述操做。和網絡請求有關

 

python的簡單flask框架:作網頁 發請求的

 

📟redux📟

⚓️是什麼:前端數據交換

核心功能:註冊登錄

 

📟redis📟

⚓️是什麼:能緩存的數據庫

核心功能:讀寫快、數據類型多、原子性(是否執行很分明)可用於緩存,消息,按key設置過時時間,過時後將會自動刪除

 

📟Ruby on Rails📟

⚓️是什麼 :使用Ruby 語言編寫的Web 應用開發框架

 

 

📟Spring boot📟

⚓️是什麼 :後端框架

ioc依賴反轉:應用程序等待容器的注入

 

📟Spring 📟

⚓️是什麼 :後端框架

mvc:是種理念。重要的東西放在模型裏

Spring從兩個角度來實現自動化裝配:

  • 組件掃描:Spring會自動發現應用上下文中所建立的bean。(組合對象)
  • 自動裝配:Spring自動知足bean之間的依賴。

依賴注入:依賴Spring來控制一切,用bean實現自動裝配Spring框架,使得mvc不用配置xml或者Java了:http://irmlab.ruc.edu.cn/2016/12/07/spring-java-config.html

 

 

📟Spring  shiro📟

⚓️是什麼 :權限管理專用框架

功能:認證、受權、加密、會話、緩存等。

 

📟消息中間件 📟

⚓️是什麼 :備胎數據庫消息

使用場景(日誌處理,異步 ,系統解耦:分佈式,流量削鋒:秒殺 搶紅包)

 

 

📟mybatis 📟

⚓️是什麼 :把數據轉成對象的框架

使用場景:mapper對應,多對多查詢

[Spring權限管理系統]
  1. 用Java 編寫了一個權限管理系統,用rabbit mq 作消息中間件實現並行的註冊功能,mysql做爲數據庫。build A rights management system was written in Java. The message m middleware was used to implement the parallel registration function. mysql was used as a database.
  2. 根據用戶行爲創建模型,基於RBAC模型(用角色來進行權限管理)模型建立了:部門、用戶、角色、權限的表格。redesign According to the user behavior model, based on the RBAC model (permission to use the role to manage) model created: department, user, role, permission forms.
  3. 搭建apache shiro、spring security管理權限框架來進行加密 認證 權限 會話管理 Build apache shiro, spring security management authority framework for encryption authentication permissions session management
  4. spring boot 搭建mybatis,省略了jdbc代碼,實現用戶、角色、權限之間多對多的查詢Spring boot builds mybatis, omits the jdbc code, and implements many-to-many queries between users, roles, and permissions
  5. 利用redis來緩存用戶和角色的權限,實現數據持久化,避免重複查詢Use redis to cache user and role permissions, to achieve data persistence and avoid duplicate queries 

  6.  

----------------------------------------------

📟NodeJS📟

⚓️是什麼:後臺框架

核心功能:事件驅動,調度爲主。沒有web容器的概念:沒有根目錄。

 

 

📟RESTful API IN NODEjs📟

⚓️是什麼:NodeJS中,本身按照REST原則寫的API。先定位(URL)再操做(HTTP)

核心功能:

如添加用戶、刪除用戶、顯示用戶詳情

 

基於nodejs開發restful api,實現瞭如添加用戶、刪除用戶、顯示用戶詳情。

 

📟express框架📟

⚓️是什麼:NodeJS的框架

核心功能:

定義了路由表用於執行不一樣的 HTTP 請求動做,包括get(接收註冊信息) post請求(展現聊天信息)

經過向模板傳遞參數來動態渲染 HTML 頁面。

 

在express框架中定義了路由表用於全面直接地執行不一樣的 HTTP 請求動做,減小了70%的代碼量。路由代碼清晰,不用不少正則表達式。包括get(接收註冊信息) post請求(展現聊天信息)。不用再寫if語句。能夠集中精力寫業務。

 

📟dao📟

⚓️是什麼:

全部對象的數據操做都放在一塊兒了,增刪改查都用一個dao來作。

核心功能:

班級說說

 

用mongoose數據庫存儲每一個用戶的基本信息,隨即地實現數據持久化。在留言板功能中,經過DAO減小了數據增刪改查時對數據庫的直接訪問。

 

📟mongoose📟

⚓️是什麼:

新建對象的同時在數據庫裏新建,實現持久化

核心功能:

用戶信息 班級姓名年齡那些,每一個用戶有一個表。

 

📟websocket📟

⚓️是什麼:

服務器推送消息。

核心功能:

調用Socket.IO庫,(用bash腳本讀取客戶端輸入),經過websocket協議發送對話信息。避免長鏈接、長輪詢請求形成的性能浪費。

 [nodejs開發的班級說說系統]

  1. 基於nodejs開發restful api,實現瞭如添加用戶、刪除用戶、顯示用戶詳情等功能。
  2. 在express框架中定義了路由表用於全面直接地執行不一樣的 HTTP 請求動做,減小了70%的代碼量。
  3. 用mongoose數據庫存儲每一個用戶的基本信息,隨即地實現數據持久化。在留言板功能中,經過DAO減小了數據增刪改查時對數據庫的直接訪問。
  4. 調用Socket.IO庫,(用bash腳本讀取客戶端輸入),經過websocket協議發送對話信息,提升了通信的性能和效率。

[Campus Message Board System]

Designed RESTful API based on Node.js, which lanches functions such as adding users, deleting users, and displaying user details.
Defined routing table in the Express framework for the full and direct execution of different HTTP request actions, decreasing the amount of code by 70%.
Stored basic information of each user into the Mongoose database for data persistence. Divised DAO to lessen direct access to the database in the leaving message function.
Utilized the Socket.IO to send the dialog information, boosting the performance and efficiency of the communication.

-----------------------------------------------

 

📟 flask擴展📟

 

⚓️是什麼:鏈接新的庫

 

核心功能:開發新的功能

 

📟微內核 📟

 

⚓️是什麼:核心操做系統,是一種原理

 

核心功能:flask是基於微內核的框架

 

📟orm 📟

 

⚓️是什麼:把對象映射到數據庫中 mapping關係

 

核心功能:

 

📟blueprint藍圖 📟

 

⚓️是什麼:管理面板

 

核心功能:

 

📟vue前端+flask後端的好處 📟

 

⚓️是什麼:

 

核心功能:前端更新後不用手工複製每次前端修改了html/js,通常先要用webpack編譯,再手工複製編譯後文件到Flask的工做目錄,後端框架才能使用更新後html/js。

 

📟 soa📟

⚓️是什麼:面向服務的架構,將功能單元經過服務鏈接起來。如採蘑菇系統、訂單系統都和soa中心鏈接。

核心功能:

 

 

 

📟 rpc📟

⚓️是什麼:

 遠程調用通訊協議,一臺計算機調用另外一臺。

核心功能:

 

 

 

📟nginx📟

 ⚓️是什麼:服務器

核心功能:做反向代理,負載平衡器 和 HTTP緩存。

反向代理:不是客戶-服務器-internet。而是internet-服務器-客戶。經過調參數來限制客戶訪問。

 

 

開放式身份驗證:沒有身份驗證

 

 

[Membership-based movie broadcast website]

  1. Integrated new features into the Microkernel-based flask framework, such as ORM, file uploading, and open authentication.
  2. Planned the project's structure with Blueprints. Defined the database model related to the business requirements via sqlalchemy, and generated data table by MySQL database.
  3. Built front-end pages for registration, login, and search with Vue.js. Saving development time via real-time synchronization of the shared code between the front and back end.
  4. Organized website's back end structure according to SOA architecture. The backend aligns WTforms validation, customized application context, custom permission decorator to achieve role-based access control for the system.
  5. Introduced Nginx environment on CentOS. Developed reverse proxy to deploy website in multiple ports and processes, hence limiting download rate to video streaming and the number of play connections that can be initiated by a single IP.

-----------------------------------------------

 

📟 Reactive programming響應式編程📟

 

⚓️是什麼:面向數據流編程、動態編程

 

核心功能:

 

📟Retrofit 📟

 

⚓️是什麼:安卓的網絡請求庫

 

核心功能:

📟RXJava📟

 

⚓️是什麼:異步操做

 

核心功能:

📟viewcontroller 📟

 

⚓️是什麼: 借鑑ios,本身寫的組件化、模塊化的開發工具

 

核心功能:是一種界面開發組件化實現方式,利用它能夠將一些複雜的 UI 界面開發組件化

📟webview 📟

 

⚓️是什麼: 在安卓裏顯示內置網頁

 

核心功能:setting類作配置、client類通知

 

📟 代碼集成📟

 

⚓️是什麼:把代碼交上去

 

核心功能:

[Android online store]

The Android campus store app makes it easy for shop assistants to deliver goods. At present, the DAU is more than 1,000.
Integrated of the Retrofit library with the RxJava library to do responsive programming for network requests.
The self-designed ViewController is used for modular development, which is responsible for the optimization of the homepage's layout architecture and the improvement of the homepage's style.
Created a hybrid App framework based on WebView, processing native requests and cookies from browsers.
Configuring Jenknis for continuous code integration, automatic packaging and quality inspection.

 

Languages: Java, Java Script, C, Python, R, Go, Shell Script, Ruby, PHP.

Front-end: Angular.js, React, jQuery, Bootstrap, Socket io,AJAX, Webpack, XML.

Back-end; NodeJS, Express.js, Spring Boot, Spring MVC, Maven, Tomcat, REST, gRPC, Django, Nginx, RPC.

Database: MySQL, MongoDB, Cassandra, Redis, Oracle, Memcached, Sqlite, HBase, SQLite, Hive.

Tools: JUnit, Git, Docker, Linux/Unix, Mac, SVN, IntelliJ IDEA, Jenkins,  Emacs, xcode, Android Studio.

 

 

BQ

完不成工做了:讓您的主管儘快知道。準備告訴他或她你須要多長時間才能完成它。完成後,肯定沒法完成的緣由並採起措施解決問題。 

相關文章
相關標籤/搜索